我有一个文件add.php
,它会添加两个数字并返回结果。
我的其他文件list.php
包含一个包含需要添加的数字的列表
$list = array ( 0=> 2,3
1=>4,5
2=>6,7);
这个数组可能更长,因此我必须使用for
循环读取它的数据:
for($i=0;$i<count($list);$i++) {
//something needs to be done here
}
我想要做的是用一个提交按钮添加所有对。 我的问题是,只有前一个数字得到结果,才能添加每对数字。 我希望例如结果数组改变如下:
No1 | No2 | result
---- | ---- | --------
2 | 3 | on queue
---- | ---- | --------
4 | 5 | on queue
---- | ---- | --------
6 | 7 | on queue
No1 | No2 | result
---- | ---- | --------
2 | 3 | 5
---- | ---- | --------
4 | 5 | on queue
---- | ---- | --------
6 | 7 | on queue
No1 | No2 | result
---- | ---- | --------
2 | 3 | 5
---- | ---- | --------
4 | 5 | 9
---- | ---- | --------
6 | 7 | on queue
No1 | No2 | result
---- | ---- | --------
2 | 3 | 5
---- | ---- | --------
4 | 5 | 9
---- | ---- | --------
6 | 7 | 13
我最初尝试使用ajax,就像这样:
<script> function loadDoc(fid1,fid2) {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById('content').innerHTML = xhttp.responseText;
}
};
xhttp.open('POST', 'play2.php', true);
xhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
xhttp.send('number1=$No1&number2=$No2');
}
</script>
其中$No1
,$No2
为$list[$i][0],$list[$i][1]
。
所以,这个失败了,我想因为ajax的异步性质,但我没有关于如何做到这一点的其他想法。
我想做的事情比这更复杂,但用这个例子来解释它更容易。
如果可能的话,我想在没有数据库调用的情况下这样做。
答案 0 :(得分:0)
我设法使用ajax和async:false这样的
<script>
$.ajax({
type: "POST",
url: "play2.php",
data: {number1:"'.$No1.'" , number2:"'.$No2.'"},
async: false,
success : function (data) {
$("#content").replaceWith(data);
}
});
</script>
我将它放在for循环中以发送所有值对,并且它按照我想要的方式工作。