[問題] request.send到php的query,如何取回結果

看板Ajax作者 (JSK)時間12年前 (2013/08/09 17:33), 編輯推噓0(003)
留言3則, 1人參與, 最新討論串1/2 (看更多)
利用JavaScript可以建立XMLHttpRequest然後利用open、send的方法傳送資料(GET或POST)。 我現在的目的是要從client端發出request到一個php,然後透過這個php執行query(mysql),最後「回傳給client的js顯示在一個div之中」。 我已經確定Request是沒有問題的。 我的client端程式碼是這樣的: function previousChange() { var ajaxReq = new AjaxRequest(); //從另一個js匯入的 var type = document.getElementById("cpt").innerHTML; var phase = document.getElementById("cpp").innerHTML; var serialNumber = parseInt(document.getElementById("csn").innerHTML); if(serialNumber <= 1) alert("已經是第一項"); else{ serialNumber--; document.getElementById('csn').innerHTML = serialNumber ; } ajaxReq.send( "POST", "query.php", handleRequest, "application/x-www-form-urlencoded; charset=UTF-8", "type=" + type + "&phase=" + phase + "&serialNumber=" + serialNumber ); document.getElementById("pointerContent").innerHTML = ajaxReq.getResponseText; } 另外,php的程式碼是這樣的: require '../database/db_con.php'; mysql_select_db("pointer_detail",$dbc)or die("無法選取資料庫"); $sql = "SELECT content FROM pointers WHERE type='" . $_REQUEST['type'] ."' AND phase='" . $_REQUEST['phase'] . "' AND serial_number='" . $_REQUEST['serialNumber'] . "'"; $result = mysql_query($sql,$dbc)or die("錯誤"); if($result==0)echo "bye"; while($row = mysql_fetch_array($result)){ echo $row['content']; } mysql_free_result($result); mysql_close($dbc); 這個php程式碼我直接執行是沒有問題的。 我想請問為什麼沒辦法回傳(在指定的div中一直出現undefined)? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.35.79.148

08/09 18:14, , 1F
ajax是非同步的,你執行到getResponse那一行,他還沒回
08/09 18:14, 1F

08/09 18:14, , 2F
用onreadystatechange設callback
08/09 18:14, 2F

08/09 18:15, , 3F
省事一點的用jquery.ajax去做,code也比較乾淨
08/09 18:15, 3F
文章代碼(AID): #1I1BTFOq (Ajax)
文章代碼(AID): #1I1BTFOq (Ajax)