我需要使用AJAX向页面添加一些数据。我为此目的编写了以下代码。问题是呼叫没有返回任何数据。 PHP文件仅用于测试目的。显然,一些实际的功能将被添加到它。 使用Javascript:
<script type="text/javascript">
function addprod(prodid) {
var xmlHttp;
if (prodid="") {
document.getelementbyID("newprod").innerhtml="";
return;
}
if (window.XMLHttpRequest)
{
xmlHttp=new XMLHttpRequest();
}
else{
xmlHttp=new ActiveXObject("Microsoft.XMLHttp");
}
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readystate==4 && xmlHttp.status==200){
document.getelementbyID("newprod").innerhtml=xmlHttp.responseText;
}
}
xmlHttp.open("GET","add_row.php?q="+prodid,true);
xmlHttp.send();
}
</script>
HTML:
<span id="newprod"></span>
<form>
<input type="text" name="addprodbyid" class="form-control" placeholder="Enter Product ID" onkeyup="addprod(this.value)" />
</form>
add_row.php:
<?php
$prod_id=$_REQUEST['q'];
echo $prod_id;
?>
我尝试用Firebug进行检查。 AJAX调用正在运行,但没有数据发送到PHP文件。每次调用的URL为add_row.php?q=
。
答案 0 :(得分:2)
错误地在内部分配
if (prodid = "") {
document.getelementbyID("newprod").innerhtml="";
return;
}
正确
if (prodid == "") {
document.getelementbyID("newprod").innerhtml="";
return;
}
答案 1 :(得分:1)
为什么不用jquery简单
function addprod(prodid) {
$.ajax({
url: "add_row.php",
type: "post",
data: {'q':prodid},
success: function(data){
$("#newprod").html(data);
},
error:function(){
$("#newprod").html('There is error while submit');
}
});
}
add_row.php:
$prod_id=$_POST['q'];
echo $prod_id;
答案 2 :(得分:0)
如果
xmlHttp.readystate
不是类型,然后将其更正为(s =&gt; S)
xmlHttp.readyState
答案 3 :(得分:0)
如果您仍然对您的变体可能无效的原因感到好奇:首先,将onreadystatechange
功能移到xmlhttp.send()
下方。还尝试更改onreadystatechange
一点
xmlHttp.open("GET","add_row.php?q="+prodid,true);
xmlHttp.send();
xmlHttp.onreadystatechange=function(){
if (xmlHttp.readyState != 4) return
if (xmlHttp.status == 200) {
document.getelementbyID("newprod").innerhtml=xmlHttp.responseText;
}
}
这似乎没有改变你的变体,但那是有一天帮助我的那个。