Ajax从服务器接收响应并将其保存在变量中以供以后的PhP使用

时间:2017-03-21 16:56:53

标签: javascript php mysql ajax database

我有一个问题,我无法解决。我是Ajax和PhP的新手,所以我将非常感谢能得到的任何帮助。

我的localhost上有一个数据库。我尝试实现的是从服务器获取来自数据库的信息的响应。我想将这些信息存储在一个变量中,所以我可以稍后回复"在某个地方。

这背后的全部想法是:

您在输入字段中输入产品编号。请求正被发送到数据库。从数据库收到响应后,产品编号下方的另一个输入字段将自动填充产品名称。您单击下一步,再次看到输入字段,根据您之前输入的产品编号填充其余信息。

到目前为止,问题是我可以在发送所有内容后立即得到响应,但是如果我只想看到一条信息,那么以后就会回复#34;其他一切,但我无法想象如何做到这一点。

我希望我能设法解释我的问题是什么,如果没有,我会尝试添加更多相关信息。

这是我的Ajax代码。我不知道如何存储从数据库中获取的信息,因此我可以在以后使用它。

<script>
function showPump(str) {
    if (str == "0") {
        document.getElementById("pumpInfo").innerHTML = "";
        return;
    } else { 
        if (window.XMLHttpRequest) {
            xmlhttp = new XMLHttpRequest();
        } else {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
                document.getElementById("pumpInfo").innerHTML = this.responseText;
            }
        };
        xmlhttp.open("GET","getpump.php?q="+str,true);
        xmlhttp.send();
    }
}
</script>

HTML的一部分:

<form>
    Product number:<input type="text" name="productNR" onfocusout="showPump(this.value)">
</form>
<br>
<div id="pumpInfo"><b>Pump info will be below</b></div>

PHP     

mysqli_select_db($con,"pumps");
$sql="SELECT * FROM pumps WHERE product_nr = '".$q."'";
$result = mysqli_query($con,$sql);

while($row = mysqli_fetch_array($result)) {
    echo "Product type <input value=" . $row['type'] . "></br>";
}
mysqli_close($con);
?>

最终结果是,一旦我填写产品编号字段,&#34;结果&#34;(产品类型)正在其下方显示,但我还有4个数据库条目,我希望在下一步中使用

1 个答案:

答案 0 :(得分:0)

这是存储通过AJAX收到的值的一种方法。

//results will be an array
var results;

if (this.readyState == 4 && this.status == 200) {
  document.getElementById("pumpInfo").innerHTML = this.responseText;
  results.push(this.responseText); //push the value of this.reponseText to the array.
}

//this pops the value of the first element of the results array
alert(results[0]);