作者no1kk (心中在下雨)
看板Ajax
标题Re: [问题] request.send到php的query,如何取回结果
时间Tue Aug 20 18:28:59 2013
你可以参考 W3C 的范例
http://www.w3schools.com/ajax/ajax_examples.asp
http://www.w3schools.com/ajax/tryit.asp?filename=tryajax_first
可以用两个方式
1. 用 ajaxReq.onreadystatechange (较常用这样的方式)
指定接收到资料之後要做甚麽事情
如
ajaxReq.onreadystatechange = function(){
document.getElementById("pointerContent").innerHTML = ajaxReq.responseText
}
2. 关闭同步处理,使用非同步
xmlhttp.open("POST","query.php",
false);
这样就会等确实完成 ajax 动作之後才进行下一行
※ 引述《cupteam (JSK)》之铭言:
: 利用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: 116.59.226.7
1F:推 s25g5d4:2. 然後浏览器会定在那边不管使用者干嘛 08/20 18:31
2F:→ s25g5d4:等到回应回来再处理 08/20 18:32