gpt4 book ai didi

javascript - Ajax自动改变变量

转载 作者:行者123 更新时间:2023-12-03 00:09:15 25 4
gpt4 key购买 nike

我这里遇到一个问题。我发现每次进入ajax时全局变量都会改变。

$(document).on("keyup input", ".product-id", function () {
var id_prod = this.id.replace('prod_id_', '');

console.log('id_prod (outside ajax): ', id_prod);

var inputVal = $(this).val();
var resultDropdown = $('#result2').css({
"display": "block"
});

if (inputVal.length) {
$.ajax({
type: 'POST',
data: { term: inputVal },
url: 'backend-search-inv.php',

success: function (data) {
resultDropdown.html(data);

$(document).on("click", "#result2 p", function () {
var inv_id = $(this).text();
//console.log('inv_id: ',inv_id);

$.ajax({
type: 'POST',
data: {
term: inv_id
},
url: 'autocomplete_inv.php',
success: function (response) {
var inv_info = jQuery.parseJSON(response);

console.log('id_prod (in ajax): ', id_prod);

},
error: function () {
console.log('Unable to access database.');
}
});

}); //end of result being clicked
}
});
}
else {
resultDropdown.empty();
}
});

我不明白为什么变量 id_prod每次进入 ajax 时都会增加。这是 console.log 的屏幕截图.

console.log

引用截图,每次我想在id_prod = 2中输入一些内容时,ajax 总是最终更新 id_prod = 1 ,然后 id_prod = 2再次自动,并导致我的数据重复。

有人可以帮我解决这个问题吗?

最佳答案

所以基本上我只是将 id_prod 声明为全局变量并分配 0 作为默认值。然后,一旦进入 keyup input 事件,id_prod 基本上就会被分配给新值。

感谢 Mohamed Yousef 在我自己问题的评论部分中的回答!

    //DECLARE id_prod as a global variable...
var id_prod = 0;

$(document).on("keyup input", ".product-id", function(){

id_prod = this.id.replace('prod_id_', '');
var inputVal = $(this).val();
var resultDropdown = $('#result2').css({"display":"block"});

if(inputVal.length){
$.ajax({
type: 'POST',
data: {term:inputVal},
url: 'backend-search-inv.php',
success: function(data){
resultDropdown.html(data);
}
});
}
else{
resultDropdown.empty();
}
});

// WHEN RESULT BEING CLICKED...
$(document).on("click", "#result2 p", function(){
var inv_id = $(this).text();

$.ajax({
type: 'POST',
data: {term:inv_id},
url: 'autocomplete_inv.php',
success: function (response) {
var inv_info = jQuery.parseJSON(response);

console.log('id_prod (in ajax): ',id_prod);

$('#prod_id_'+id_prod).val(inv_info[0]);
$('#prod_qty_'+id_prod).val(1);
$('#prod_disct_'+id_prod).val(0);
$('#prod_type_'+id_prod).val(inv_info[1]);
$('#prod_colour_'+id_prod).val(inv_info[2]);
$('#prod_price_'+id_prod).val(inv_info[3]);

$('#result2').empty();

sumPrice();
},
error: function(){
console.log('Unable to access database.');
}
});});

关于javascript - Ajax自动改变变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54820050/

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