作者cupteam (JSK)
看板Ajax
標題[問題] request.send到php的query,如何取回結果
時間Fri Aug 9 17:33:00 2013
利用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
1F:→ waneblade:ajax是非同步的,你執行到getResponse那一行,他還沒回 08/09 18:14
2F:→ waneblade:用onreadystatechange設callback 08/09 18:14
3F:→ waneblade:省事一點的用jquery.ajax去做,code也比較乾淨 08/09 18:15