我有一个以下列方式与数据库交互的javascript(请参阅下面的代码):
问题:' num' for loop表现得很狡猾。在ajax函数调用中,它使用正确的数字(分别为0,1和2),因此我将正确的水果发送到数据库并获得正确的信息。但在ajax'成功'功能,' num' 总是 3(fruits数组的长度)。这很奇怪,因为当我运行代码时,返回的结果会逐一显示。
有谁知道我做错了什么?还尝试了while / for循环以及我在循环内递增的全局num变量,但它带有相同的结果。无法获得' num'的循环值。进入ajax响应函数。
从技术上讲,我当然可以将num值传递给php,然后返回它,这样可行,但必须有更优雅的方式来做这件事,我也想知道我做错了什么。建议?
<body>
<button id="display" value="try"> Goho!</button>
<script>
$(document).ready(function()
{
$("#display").click(function()
{
var fruits=["Apple","Orange","Banana"];
for(num=0; num<fruits.length;num++)
{
$.ajax(
{
type: 'POST',
url: 'getFruitData.php',
dataType: 'json',
// The variable here gets the correct num value (0, 1 or 2)
data: {variable:fruits[num]},
success: function( response )
{
var dbEntries = $.map(response, function(el) { return el });
// When printing 'response', the correct data is displayed.
window.alert (response);
// num is always 3 here! (length of the array)
window.alert(num);
}
});
}
});
});
</script>
</body>