我尝试处理一个数组来自提交表单数据后的php文件,提交表单后的数据值是= ARRAY,但我不能以任何方式使用这个数组,任何想法我如何处理这个数组!!!
Javascript :
$('#file').live('change',function(){
$('#preview').html('');
$('#preview').html('<img src="loader.gif" />');
$('#data').ajaxForm(function(data){
$(data['toshow']).insertBefore('.pic_content').hide().fadeIn(1000);
}).submit();
});
.PHP:
....
....etc
echo json_encode(array('toshow'=>somedata,'data'=>somedata));
来自服务器的 JSON 字符串
{"toshow":"'r'n't't't't'r'n't't<table class='"out'">'r'n't't't<tr ><td class='"img'"><a title='"2012-06-02 01-22-09'" rel='"prettyPhoto'" href='"img'/2012-06-02 01-22-09.284.jpg'"><img src='"img'/thumb'/2012-06-02 01-22-09.284.jpg'"'/><'/a><'/td><'/tr>'r'n't't't'r'n't't't<td>'r'n't't't't<table cellSpacing='"1'" cellPadding='"0'">'r'n't't't't't<tr><td class='"data'"><span class='"click'">2012-06-02 01-22-09<'/span><'/td><'/tr>'r'n't't't't't<tr><td class='"data'"><span class='"click'">Download<'/span><'/td><'/tr>'r'n't't't't't<tr><td class='"data'"><a href='"img'/2012-06-02 01-22-09.284.jpg'"><span class='"click'">View<'/span><'/a><'/td><'/tr>'r'n't't't't<'/table>'r'n't't't<'/td>'r'n't't't<'/tr>'r'n't't<'/table>","span":"<span class='text'><img src='greencheck.png''/>2012-06-02 01-22-09 Uploaded ,File Size =152Kb <'/span>"}
最好使用 json_encode($array) 将数组转换为 JSON 格式。 JSON 数据可以通过 Javascript 轻松处理
你不能
直接回显数组,它只会输出Array
。
您需要使用json_encode。
echo json_encode($your_array);
你也可以通过PHP处理数组,也可以使用jQuery来处理数组
对于 jQuery 使用 - jQuery each
用于 PHP - foreach 或 for 循环
或尝试
echo '<pre>';
print_r($array);
echo '</pre>';
在你的 PHP 端,你必须在 JS 端插入json_encode($array)
AND 而不是使用 data['toshow']
使用 data.toshow
。
希望对您有所帮助!
发送一个 JSON 响应,如下所示:
<?php
echo json_encode($yourarray);
?>
然后,要调整 AJAX 函数,请执行以下操作:
$('#file').live('change',function(){
$('#preview').html('');
$('#preview').html('<img src="loader.gif" />');
$('#data').ajaxForm(function(data){
var jsonData = jQuery.parseJSON(data);
//acess it like
alert(jsonData.toshow); //alert for your testing
$(jsonData.toshow).insertBefore('.pic_content').hide().fadeIn(1000);
}).submit();
});
- 编辑*更改,根据插件文档更新。
我从未使用过.ajaxForm jQuery插件,我继续阅读文档,我将把代码放在这里,从我阅读的内容中尽可能清晰,我什至让插件自动将响应解析为json。
我没有看到任何.ajaxForm().submit(),根据文档
,没有必要这样做。$('#file').live('change',function(){
$('#preview').html('');
$('#preview').html('<img src="loader.gif" />');
$('#data').ajaxForm({
dataType: 'json',
success: function(data){
alert("json string response from php: "+ data.toshow);
$(data.toshow).insertBefore('.pic_content').hide().fadeIn(1000);
}
});
});
dataType 使插件单独解析对 json 的响应。和成功:函数(数据)如果只有来自 PHP 的响应,就会发生。仔细实施它,如果您仍然没有正确,请提供链接。