Javascript Ajax发送表单数据并检索多维数组
好的,我有一个表单,您可以在其中选择一个CSV文件,当您点击sales_importer按钮时,我希望我的java调用我的php函数,获取返回的多维数组,然后进行后续处理。当我运行下面的代码时,我得到了一个带有多维值数组的警报框,但它似乎是字符串形式的。当我执行alertresult[0][0]时;我得到[在我的警报框中] 我曾尝试将ajax调用中的数据类型更改为json,但失败了,但我的浏览器仍然给出了200个响应。对可能发生的情况/如何修复有何建议 js phpJavascript Ajax发送表单数据并检索多维数组,javascript,php,jquery,codeigniter,Javascript,Php,Jquery,Codeigniter,好的,我有一个表单,您可以在其中选择一个CSV文件,当您点击sales_importer按钮时,我希望我的java调用我的php函数,获取返回的多维数组,然后进行后续处理。当我运行下面的代码时,我得到了一个带有多维值数组的警报框,但它似乎是字符串形式的。当我执行alertresult[0][0]时;我得到[在我的警报框中] 我曾尝试将ajax调用中的数据类型更改为json,但失败了,但我的浏览器仍然给出了200个响应。对可能发生的情况/如何修复有何建议 js php 如果希望能够使用javasc
如果希望能够使用javascript中的数据,则需要应用一个键。因此,在PHP中:
echo json_encode( array('rows' => $rows) );
现在,您可以访问jQuery AJAX成功函数中的行:
success: function(result){
// rows available as result.rows
if( result.rows ){
// Do something with result.rows...
console.log( result.rows );
$.each( result.rows, function(i, arr){
console.log( arr );
});
}
}
记住result.rows将是一个javascript对象,因此您需要使用jQuery的each循环遍历这些行并执行您想要执行的操作。使用控制台查看result.rows,您就会明白我的意思。您可以尝试序列化$rows的内容并将其记录到服务器,以便检查res中返回的内容ponse.@BrianGottier当我将响应序列化到日志时,这是响应的开始。a:520:{I:0;a:16:{i:0;s:10:公司;i:1;s:11:电话号码;i:2;s:8:主要传真;i:3;s:13:车辆号码;i:4;s:4:城市;i:5;s:5:州;i:6;s:7:地址;i:7;s:6:县;i:8;s:3:邮政编码;i:9;s:7:网站;i:10;s:13:代理商状态;i:11;s:16:内部销售代表;i:12;i:17:外部销售代表;i:13;s:5;s:14;备注:其他代理商;ID:10;}我不知道I、a和s的用途,但CSV的第一行显示:公司、电话号码、主传真、车辆号码等。此外,如果我将其打印为json编码vs序列化,我会得到:[[\ufeffcompany、电话号码、主传真、车辆号码、城市、州、地址、县、邮政编码、网站、代理状态、内部销售代表、外部销售代表、备注、其他代理评论、记录ID],…像fgetcsv这样的etcLooks没有拆分引号上的字段。这可能是csv文件中的编码问题。当我这样做时,控制台中没有写入任何内容。如果我添加其他{console.logno;}我在控制台中没有得到任何结果。rows.move\u upload\u file是否真的将文件保存到$newFilePath?是的,我甚至检查了新的文件路径,文件就在那里。我甚至将数组吐到一个视图中,可以看到数据。整个ajax事务中出现了一些奇怪的情况。你应该尝试一下使用jqueryajax设置dataType:'json'当我添加dataType:'json'时,ajax实际上会出错而不是成功
echo json_encode( array('rows' => $rows) );
success: function(result){
// rows available as result.rows
if( result.rows ){
// Do something with result.rows...
console.log( result.rows );
$.each( result.rows, function(i, arr){
console.log( arr );
});
}
}