GET数据未通过AJAX调用发送

时间:2014-11-01 05:49:52

标签: javascript php jquery ajax

我需要使用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=

4 个答案:

答案 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;
    }
}

这似乎没有改变你的变体,但那是有一天帮助我的那个。