[問題] 後端php接收不到特殊符號

看板Ajax作者 (羊小弟)時間9年前 (2016/01/16 22:15), 編輯推噓2(204)
留言6則, 3人參與, 最新討論串1/1
我從網路上抓到一個ajax自動完成的程式碼,前端輸入資料傳到後端php, 但發現特殊符號會無法傳遞,例如打John & Mary,後端php只會收到John, &之後都會消失,我查了一下,似乎是要加escape()這個函數嗎,但本人是外行, 能否幫我看一下要加在哪,或是要怎麼解決,感謝! $(document).ready(function(){ $("#enname").keyup(function(){ $.ajax({ type: "POST", url: "ajax_search.php", data:'keyword='+$(this).val(), dataType: "text", beforeSend: function(){ $("#enname").css("background","#FFF url(LoaderIcon.gif) no-repeat 165px"); }, success: function(data){ $("#suggesstion-box").delay(1000).show(); $("#suggesstion-box").delay(1000).html(data); $("#enname").css("background","#FFF"); } }); }); $("#enname").blur(function(){ $("#suggesstion-box").delay(100).hide(100); }); }); function selectCountry(val) { $("#enname").val(val); $("#suggesstion-box").hide(); } </script> -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.161.22.242 ※ 文章網址: https://www.ptt.cc/bbs/Ajax/M.1452953734.A.1D8.html

01/16 22:36, , 1F
data: encodeURIComponent(keyword='+$(this).val()),
01/16 22:36, 1F

01/16 22:36, , 2F
後端收到後再decode
01/16 22:36, 2F

01/16 23:48, , 3F
感謝回復,我試了好像不行,但我改用以下這樣就可以了
01/16 23:48, 3F

01/16 23:48, , 4F
data:'keyword='+$(this).serialize(),
01/16 23:48, 4F

01/17 15:43, , 5F
應該是 data: "keyword=" + encodeURIComponent(..)
01/17 15:43, 5F

01/17 17:27, , 6F
對吼,忘記=也會被encode了
01/17 17:27, 6F
文章代碼(AID): #1Mcb267O (Ajax)
文章代碼(AID): #1Mcb267O (Ajax)