看板 PHP 關於我們 聯絡資訊
各位大大好 小弟新手 我是用ajax傳textarea裡的值到另一個php頁面 例如: textarea裡的值是123&456 在本頁用javascript alert印出來看也是123&456 但是到了另一頁的php看就變成123而已 也就是說&後面的東西都不見了..... 以下附上code 本頁的 <form id="box" name="form3" action="post.php" method="post"> <textarea id="box" name="article" onkeyup="send1(this.value)"></textarea> </form> <script type="text/javascript"> function send1(str){ var xmlhttp; if (window.XMLHttpRequest){ xmlhttp=new XMLHttpRequest(); }else{ xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); }xmlhttp.onreadystatechange=function(){ if (xmlhttp.readyState==4 && xmlhttp.status==200){ document.getElementById("txtHint").innerHTML= xmlhttp.responseText; } } xmlhttp.open("POST","b.php",false); xmlhttp.setRequestHeader("Content-type","application/x-www-form- urlencoded"); xmlhttp.send("str="+str); } </script> 另一頁 <?php $str=$_POST[str]; echo $str; ?> 有請各位解答 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.230.171.233 ※ 文章網址: http://www.ptt.cc/bbs/PHP/M.1397741965.A.7F8.html
marlu:ajax是以網址將值帶至另一頁面,所以&被當成網址的一部分了 04/17 22:08
ge002v:感謝m大 原來是這樣傳值的... 請問這樣還有解嗎? 04/17 22:32
mmis1000:encodeURIComponent 去查一下這個 04/17 22:38
Darkland:你 content-type 設定了 x-www-form-urlencoded 所以 04/17 22:42
Darkland:你就真的要傳 urlencoded 的值,因此請看三樓的 04/17 22:43
ge002v:非常感謝各樓大大們! 問題解決了 在xmlhttp.send前多加個 04/17 23:01
ge002v:str=encodeURIComponent(str); 這能動了 04/17 23:02
ge002v: 就 04/17 23:03
小弟還有個問題想請教 ajax傳陣列給php var a=4; var b=0; var str=new Array(a,b); xmlhttp.send("str="+str); 本頁的js alert(str.length); 印出來是2 另一頁的php印出來變陣列長度是1 value=4,0 請問為什麼php這邊的長度會變成1 值會變成4,0 還多個逗號 <?php $str=$_POST[str]; echo count((array)$str); foreach ((array)$str as $key => $value){ echo "value=".$value."<br>"; } ?> 因為用is_array判斷$str不是陣列 所以才多加(array)..... 有請各位解答 謝謝 ※ 編輯: ge002v (36.230.171.87), 04/21/2014 17:42:40
danny8376:網址參數只能傳文字 非文字要自己轉換... 04/21 18:22
ge002v:感謝d大 結果網路上有... http://ppt.cc/IxVj 04/21 23:39