gpt4 book ai didi

javascript - 通过循环 AJAX 调用插入查询第二次及以后不起作用?

转载 作者:行者123 更新时间:2023-11-28 06:16:07 26 4
gpt4 key购买 nike

我有一个名为 db_input 的 JS 函数:

function db_input(dataString,x){
$.ajax({
url: "custom_scripts/db-input.php",
type: "POST",
dataType:'json',
data: dataString,
cache: false,
success: function(data){
if(data.auth==true){
//alert("success: " + x);
} else {
alert(data.error);
return false;
}
}
})
}

通过 forloop 传递一个名为 dataString 的 JS var:

for(x=1;x<=var;x++){
...
var dataString = 'a_var='+ a_var + '&b_var='+ b_var + '&c_var='+ c_var + '&d_var='+ d_var + '&e_var='+ e_var;
db_input(dataString,x);
}

查找非空、经过验证的 HTML 输入元素,并将值插入到 JS 变量中,这些变量在每次迭代时附加到 dataString 并通过 AJAX 传递 到将它们插入数据库表中的 PHP 脚本:

<?php
...
$a_var=$_POST['a_var'];
$b_var=$_POST['b_var'];
$c_var=$_POST['c_var'];
$d_var=$_POST['d_var'];
$e_var=$_POST['e_var'];

$rVal=array("auth" => false, "error" => NULL);

//connect

$query="INSERT INTO `db`.`table` (`a_var`, `b_var`, `c_var`, `d_var`, `e_var`) VALUES (?, ?, ?, ?, ?);";
$stmt = $conn->prepare($query);
$stmt->bind_param("sssss", $a_var, $b_var, $c_var, $d_var, $e_var);
$stmt->execute();

$rVal['auth']=true;

$stmt->close();
$conn->close();

echo json_encode($rVal);
...
?>

每个 HTML 元素都存储在 div 中(有些在一起;有些分开)...JS 验证函数(导致调用 db_input 的循环) 由 button onclick 调用:

<input class="submit" style="float:left; color: #595959;" type="button" value="submit" onclick="validate();" />

这是第一次工作......根据打开并使用非空数据验证的 div 数量,JS 循环并插入 a_var, b_varc_vard_vare_var 通过 db_input 输入数据库 ajax 调用 db-input.php 脚本...

问题是,虽然每次调用似乎都已完成(成功),但数据仅在第一次或直到页面刷新时才会插入数据库......什么'(s )(重新)问题?

最佳答案

尝试将 async 设置为 false:

function db_input(dataString,x){
$.ajax({
async: false,
url: "custom_scripts/db-input.php",
type: "POST",
dataType:'json',
data: dataString,
cache: false,
success: function(data){
if(data.auth==true){
//alert("success: " + x);
} else {
alert(data.error);
return false;
}
}
})
}

关于javascript - 通过循环 AJAX 调用插入查询第二次及以后不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35949066/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com