[問題] 請教一個jquery 連動選單-單引號的問題

看板Ajax作者 (中仔)時間16年前 (2008/12/16 22:16), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串1/1
想請教一個jquery的問題,利用jquery作連動選單主要是用class1這個欄位 連動class3這個欄位,程式碼如下 <script> jQuery(document).ready(function(){ $('#class3').cascade('#class1', { ajax: { type: "GET", url: 'action.php', data: { act: 'distribution', val: $('#class3').val() } }, template: function(item) { return "<option value='" + item.Value + "'>" + item.Text + "</option>"; }, match: function(selectedValue) { return this.When == selectedValue; } }) .bind("loaded.cascade",function(e,target) { jQuery(this).prepend("<option value='' selected jQuery(this).find("option:first")[0].selected = }); }); </script> 這邊會到action.php中撈出資料庫來比對~然後回傳class3的值回來 action.php部份如下: case 'distribution': $query = sprintf("SELECT DISTINCT class3 FROM c_type WHERE class1= '$parentId' AND class3 !='' ORDER BY class3 ASC"); $result = mysql_query($query, $mio); while ($row = mysql_fetch_assoc($result)) { $list .= '{\'When\':\'' . $parentId . '\',\'Value\':\'' . $row["class3"] . '\',\'Text\':\'' . $row["class3"] . '\'},'; } break; 而問題在題我在建立新資料時.假設class1是retail, class3欄位則是有包含單引號的字元(或一些/等敏感的字串時)-fanc's 那按照邏輯來說當我選下拉選單class1的retail的時候.class3會跑出fanc's 這樣的資料.但是因為有單引號的緣故.class3欄位的部份呈現灰白色. 而把單引號去掉之後.變成fnacs,則下拉選單又正常運作了 但好像又不能避免使用者輸入單引號.請問這問題可以怎麼解決呢? 因為我做的網頁是有包含新增.刪除.編輯跟查詢等功能.. 是需要利用到addslashes跟stripslashes函數嗎? 就是插入資料庫的欄位全都使用addslashes 然後顯示資料時用stripslashes~ 有更好的方法能解決嗎?請高手幫幫忙.謝謝 ps:我的magic_quotes_gpc有設定為on -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.134.184.241 ※ 編輯: chrismaggie 來自: 220.134.184.241 (12/16 22:52)

12/16 23:58, , 1F
理論上是要在讀出 ' 時做一下 escape ..
12/16 23:58, 1F
文章代碼(AID): #19HxXJ9g (Ajax)
文章代碼(AID): #19HxXJ9g (Ajax)