0

我试图在提交表单数据后处理来自 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>"}
4

5 回答 5

3

最好使用 json_encode($array)将数组转换为 json 格式。json 数据可以很容易地被 Javascript 处理

于 2012-07-04T08:40:08.840 回答
1

你不能直接回显数组,它只会输出Array

您需要使用json_encode

echo json_encode($your_array);
于 2012-07-04T08:37:01.917 回答
0

您也可以使用 jQuery 通过 PHP 处理数组

供 jQuery 使用 - 每个 jQuery

供 PHP 使用 - foreach 或 for 循环

或尝试

echo '<pre>';
print_r($array);
echo '</pre>';
于 2012-07-04T08:43:15.110 回答
0

从 PHP 发送 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 的响应就会发生。仔细实现它,如果你仍然没有得到正确的链接,请提供链接。

于 2012-07-04T08:56:39.113 回答
0

在您的 PHP 端,您必须json_encode($array)在 JS 端插入 AND 而不是使用data['toshow']use data.toshow

希望能帮助到你!

于 2012-07-04T08:52:03.173 回答