Php JSON返回数组的奇怪结果
PHPPhp JSON返回数组的奇怪结果,php,javascript,jquery,ajax,json,Php,Javascript,Jquery,Ajax,Json,PHP $table = mysql_real_escape_string($_REQUEST['table']); $query = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.Columns where TABLE_NAME = '$table'"; $result = mysql_query($query); $arr1 = array(); while($row = mysql_fetch_array($result, MYSQL_ASSO
$table = mysql_real_escape_string($_REQUEST['table']);
$query = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.Columns where TABLE_NAME = '$table'";
$result = mysql_query($query);
$arr1 = array();
while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$arr1[] = $row['COLUMN_NAME'];
}
echo json_encode($arr1);
}
Javascript/Jquery
$("#verticalSelect").change(function() {
var table = $("#verticalSelect option:selected").attr('value');
$.post(PROCESSORFILE, {"task": "getTableDupeFields", "table": table}, function(data) {
$.each(data, function(key, value){
$("#test-area").append(key+' is: '+value+'<br/>');
});
alert(data);
});
});
$(“#垂直选择”).change(函数(){
var table=$(“#垂直选择选项:选定”).attr('value');
$.post(PROCESSORFILE,{“task”:“getTableDupeFields”,“table”:table},函数(数据){
$。每个(数据、函数(键、值){
$(“#测试区域”).append(key+”是:“+value+”
”);
});
警报(数据);
});
});
现在有了返回JSON变量的警报,我得到了预期的结果
[“潜在客户id”、“呼叫中心”、“猴子”…]
但是通过Jquery.each()
函数,我得到了以下结果:
0:is:[1:是:“
2:is:l
3:is:e
4:is:a
5:is:d
6:is:u
7:is:i
8:is:d
9:是:“
10:is:,
11:是:“
12:is:c
13:is:a
14:is:l
15:is:l
16:is:c
17:is:e
18:is:n
19:is:t
20:is:e
21:is:r
返回数组的每个字符都是循环的,而不是每个离散值。处理JSON返回数组的正确方法是什么?不会为您分析
$.post()
的结果
$.post(PROCESSORFILE, {"task": "getTableDupeFields", "table": table}, function(data) {
data = $.parseJSON(data);
$.each(data, function(key, value){
$("#test-area").append(key+' is: '+value+'<br/>');
});
alert(data);
});
$.post(PROCESSORFILE,{“任务”:“getTableDupeFields”,“table”:table},函数(数据){
data=$.parseJSON(数据);
$。每个(数据、函数(键、值){
$(“#测试区域”).append(key+”是:“+value+”
”);
});
警报(数据);
});
编辑-哦,您还可以将第四个参数传递给$.post()
,但我个人不确定传递“json”是否会告诉它解析结果;它可能会这样做。不会为您解析$.post()
的结果
$.post(PROCESSORFILE, {"task": "getTableDupeFields", "table": table}, function(data) {
data = $.parseJSON(data);
$.each(data, function(key, value){
$("#test-area").append(key+' is: '+value+'<br/>');
});
alert(data);
});
$.post(PROCESSORFILE,{“任务”:“getTableDupeFields”,“table”:table},函数(数据){
data=$.parseJSON(数据);
$。每个(数据、函数(键、值){
$(“#测试区域”).append(key+”是:“+value+”
”);
});
警报(数据);
});
编辑-哦,您还可以将第四个参数传递给
$.post()
,但我个人不确定传递“json"告诉它分析结果;它可能会这样做。您需要将响应头设置为application/json
或在$中指定数据类型。post
要成为“json”您需要将响应头设置为application/json
或在$中指定数据类型。post
要成为“json”$.post()
检测内容类型?如果是这样的话,那就太好了:-)我知道$.ajax()
不检测,但我想“方便”版本的方便是有意义的。@Pointy只是用$.ajax()
尝试了它,它成功了,尽管我使用了最新版本的jQueryThink$.post()
假设未显式设置json
数据类型。我尝试了它,它成功了。奇怪的是,我认为json
是隐式设置的。@Musa-hmm…这很有趣;我还没有使用1.8。我有一个带有json响应的混合系统,我必须自己解析它。我不会告诉$.ajax()
响应类型是JSON,但我正在设置内容类型(我知道我这样做是因为我的代码就是这样区别的)。$.post()
检测到内容类型了吗?如果是这样,那很好:-)我知道$.ajax()
没有,但我想这对“方便性”来说是有意义的版本比较方便。@Pointy只是用$.ajax()
尝试了一下,效果很好,尽管我使用了最新版本的jQueryI Think$.post()
假设未显式设置json
数据类型。我尝试了它,它成功了。奇怪的是,我认为json
是隐式设置的。@Musa-hmm…这很有趣;我还没有使用1.8。我有一个带有json响应的混合系统,我必须自己解析它。我不会告诉$.ajax()
响应类型是JSON,但我正在设置内容类型(我知道我正在这样做,因为我的代码就是这样说明区别的)。正确的方法是将字符串转换为本机数据类型;)正确的方法是将字符串转换为本机数据类型;)