Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php JSON返回数组的奇怪结果_Php_Javascript_Jquery_Ajax_Json - Fatal编程技术网

Php JSON返回数组的奇怪结果

Php 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

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_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,但我正在设置内容类型(我知道我正在这样做,因为我的代码就是这样说明区别的)。正确的方法是将字符串转换为本机数据类型;)正确的方法是将字符串转换为本机数据类型;)