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 側では、 useを使用するjson_encode($array)代わりに、JS 側に ANDを挿入する必要があります。data['toshow']data.toshow

それが役に立てば幸い!

于 2012-07-04T08:52:03.173 に答える
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();

  });
  • EDIT *プ​​ラグインのドキュメントに従って変更、更新。

.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 への応答のみを解析するようにします。そして成功: function(data) は、PHP からのみ応答があった場合に発生します。慎重に実装し、それでもうまくいかない場合はリンクを提供してください。

于 2012-07-04T08:56:39.113 に答える