我对jquery很新,并且遇到了一个小故障。基本上,我有一个非常基本的查询脚本,它访问一个php文件,为日历上的日期检查器返回一个数组。
我在那里有警报,它告诉我数组正在正确发送,但我无法获取不可用的变量来对其进行操作。
这是jquery脚本
$.get("sql.php",function(data,status)
{
/* alert("Data: " + data + "\nStatus: " + status); */
result = data;
return result;
});
var unavailableDates = result; /*result is an array. In this format it works, var unavailableDates = ["1-1-2013"]; */
这是它正在访问的基本php脚本:
<?
$row[0] = "01-01-2013";
$row[1] = "02-01-2013";
$row[2] = "03-01-2013";
echo $row;
?>
答案 0 :(得分:3)
这意味着您无法从使用$.get()
或$.post()
等的函数返回任何内容,而是执行此操作:
$.get("sql.php",function(data,status)
{
/* alert("Data: " + data + "\nStatus: " + status); */
result = data;
var unavailableDates = result;
});
在函数$.ajaxComplete
中,使用unavailableDates
。
答案 1 :(得分:2)
$.get
是异步的。代码行:
var unavailableDates = result;
将在get
完成并执行回调之前执行。
答案 2 :(得分:2)
其他人已经注意到你的JS中的异步问题,但是php的输出需要是JSON才能将数组从服务器发送到客户端。
echo json_encode( $row);
将dataType
参数添加到$.get
,以便jQuery知道将数据解析为JSON。
$.get("sql.php",function(data,status){
/* consume array here since AJAX is asychronous*/
$.each(data, function(i, item){
doSomething( item);
})
},'json');
编辑:还可以使用包含$.getJSON()
数据类型的快捷方法json