gpt4 book ai didi

javascript - Ajax 的 PHP 只工作一次

转载 作者:行者123 更新时间:2023-11-29 23:45:53 25 4
gpt4 key购买 nike

我尝试使用的代码是数据库产品价目表的一部分。它几乎可以完成所有工作,但我需要一个ajax来运行多次,它确实如此,它甚至运行成功句子,但当我检查数据库时,它就像只运行了一次......我希望你能帮助我。

我从输入中获取两个值,即产品的 ID 和数量,当按钮调用发送函数时,我将它们添加到列表中,这是代码的一部分:

function valores(cod, cant) {

if (cod != '') {
cot.push([cod, cant]);
i++;
}
return cot;
}

function send () {

event.returnValue=false;

var id = $('#id').val();
var amount = $('#cant').val();
var total;


if ($('#total').length > 0) {
total = document.getElementById('total').value;
} else {
total = 0;
}

$.ajax({
type: 'POST',
data: ({cod : id, cant : amount, tot : total }),
url: 'process/agprods.php',
success: function(data) {
$('#totals').remove();
$('#prodsadded').append(data);
valores(id, amount);
rs = $(document.getElementById('rs').html);
},
error: function () {
$('#rs').innerHTML = rs;
document.getElementById('note').innerHTML = "Error: The product doesn't exist.";
$('#handler-note').click();
}
});
}

(我将一些原本是西类牙语的单词翻译成英文,以便您更容易阅读)

因此,cot[] 数组保留产品的 id 和金额,以便在下一个代码中使用它们,该代码在列表完成并且您点击调用此函数的保存按钮时运行:

function ncotiza () {

event.returnValue=false;

var nlist = $('#codp').val();
var day = $('#days').val();

$.ajax({
async: false,
type: 'POST',
data: ({listnumber: nlist, days : day}),
url: 'process/ncot.php'
});

j = 0;

while (j <= i) {

if (cot[j][0] != 0 && cot[j][1] != 0) {
var num = cot[j][0];
var cant = cot[j][1];

$.ajax({
async: false,
type: 'POST',
data: ({ listnumber : nlist, prodid: num, amount : cant }),
url: 'process/ncotpro.php',
success: function () {
alert('Success');
}
});

cot[j][0] = 0;
cot[j][1] = 0;
j++;
}

if (j == i) {
window.location.reload(1);
alert("Finished Successfully");
};
}

}

一切运行正常,这是 PHP:

(ncot.php)

    $listnumber = isset($_POST["listnumber"]) ? $_POST["listnumber"] : '';
$days = isset($_POST["days"]) ? $_POST["days"] : '';

$cons = "INSERT INTO pricelist (listnumber, diashabiles, cdate)
VALUES ('$listnumber', '$days', CURDATE())";
mysql_query($cons);

?>

(ncotpro.php)

    $listnumber = isset($_POST["listnumber"]) ? $_POST["listnumber"] : '';
$prodid = isset($_POST["prodid"]) ? $_POST["prodid"] : '';
$amount = isset($_POST["amount"]) ? $_POST["amount"] : '';

$cons = "SELECT price, um
FROM inventory
WHERE listnumber = ".$prodid;

$result = mysql_query($cons) or die ("Error: ".mysql_error());

$row=mysql_fetch_assoc($result);
$umcons = mysql_query("SELECT uvalue FROM um WHERE id = ".$row["um"]) or die ("Error:".mysql_error());
$umres = mysql_fetch_assoc($umcons);
$vuum = $umres["uvalue"];
$fprice = $row["price"] * ($amount * $vuum);

$cons = "INSERT INTO cotpro (cotizacion, producto, amount, monto)
VALUES ('$listnumber', '$prodid', '$amount', '$fprice')";

mysql_query($cons) or die ("Error: ".mysql_error());

?>

第一个 ajax 运行正常,然后它也执行 while 内的操作,并抛出所有警报,但当我检查数据库时,它只生成了 1 行,而不是所有必须的。

如果它太明显或者其他什么,我很抱歉,我在这个页面中查看了很多问题和答案,并且我已经尝试修复这个问题几个小时了,但我就是没有看到它。

先谢谢你了。

最佳答案

尝试通过 firebug 调试第二个 jquery 文件。你在 i 中返回的值是多少

while (j <= i) { .. .. .

关于javascript - Ajax 的 PHP 只工作一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25956101/

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