2011-12-06 26 views
1

私は、この質問がこれまでにさまざまな方法で求められていることを知っています。私は、ドメイン内の別のページにJSONエンコードされた配列を解析するのが難しいです。jQueryを使用してPHP JSONエンコードされた配列を投稿する

私はこのPHPコードを持っている:ここでは

<?php 
    $json_results = json_encode($results); 
?> 

は$ json_resultsの例である:

[{ "ステータス": "例のステータス2"、 "連絡先ID番号":」 「2011-06-15」、「Date Assigned」:「2011-06-15」、「Last Modified」:「2011-06-15」、「Deceased Date」:NULL、 "関係者1": "父"、 "認可1": "1"、 "登録者2にリンク": "Sam Murdoc"、 "Relationship 2": "Husband" 、 "認可2": "1"、 "場所": "Zues Funeral Home"、 "Sales Manager": "Dan Thompson"、 "Counselor": "Steve Brown"、 "Re 「登録番号」:「2001-05-11」、「プログラム1番号」:「2」、「プログラム1の日付」:「2003-11-05」、「プログラム1の名前」、 : "非登録者テストプログラム - アドバンテージ"、 "プログラム2番号": " - "、 "プログラム2日付": " - "、 "プログラム2名": " - "、 "ファーストネーム": "オネリア「都市1」:「ヒューストン」、「州/地域1」:「テキサス」、「ジップ」、「郵便番号」、「住所」、「住所」、 「郵便番号1」:「77019」「自宅電話」「 - 」「勤務先電話」「 - 」「携帯電話」「 - 」「ポケットベル」「 - 他の電話機 ":" - "、"電子メール ":null、"販売タイプ ":"事前必要 "、"注1 ":"注3です。注3です。注3です。これは注3です。これは注3です。これは注3です。これは注3です。これは注3です。これは注3です。注3です。注3です。注3です。これは注です。 3.これは注3です。 "}]

ここは$.ajaxですスクリプトは:

<script type='text/javascript' > 
    $(document).ready(function(){ 
     var results = <?php echo($json_results);?>; 
     $("#xls_download_button").click(function(e) { 
      e.preventDefault(); 
      $.ajax({ 
       type: 'post', 
       cache: false, 
       url: './libs/common/test.php', 
       data: results 
      });     
     }); 
    }); 
</script> 

これはtest.phpファイルです:

<?php 
    echo 'Jason Data: ' . $_POST['data']; 
    $results = json_decode($_POST['data']); 
    // do something with results ... 
?> 

#xls_download_buttonをクリックすると、ポストイベントが発生しますが、データは(放火魔に見て)ポストに渡されません。

最終的には、ファイル(現在はトラブルシューティングの代わりにtest.phpを置き換えます)に配列データを渡すだけです。export_to_excel.phpは、anexcelファイルを作成して返します。

ここで何が間違っているのか、あるいはこのデータをPHPページに渡すより良い方法があるのでしょうか?

答えて

0
 
$.ajax({ 
     type: 'post', 
     cache: false 
     , url: 'http://localhost/projectname/yourfilepath_and_name.php', 
     data: "result="+results, 
     success: function(resp) { 
      alert(resp); 
     } 

     });  
//and in php 
do 
print_r($_POST); 
+0

JSONオブジェクトとしての結果があるため、これは機能しません。 – andlrc

1

これは、データを渡す必要があるためです。

<script type='text/javascript' > 
    $(document).ready(function(){ 
    var results = <?php echo($json_results);?>; 
    $("#xls_download_button").click(function(e) { 
     e.preventDefault(); 
     $.ajax({ 
     type: 'post', 
     data: 'data=' + results   <======== 
     , cache: false 
     , url: './libs/common/test.php' 
     });     
    }); 
    }); 
</script> 
+0

'$ _POST [" data "]'からアクセスする必要がある場合は、 'data:{data:results}' – andlrc

+0

です。これを実行して、ポストデータを表示するファイヤーバグを知っていますが、成功ハンドラ内のデータを参照してください:test.php <?php $ results = json_decode($ _ POST ['data']); return $ results; //結果で何かを行う... >スクリプトのように:?$アヤックス({ \t \tタイプ: 'ポスト' 、キャッシュ:偽 、データ: 'データ=' + 結果、URL: './libs/common/test.php' \t \t、成功:関数(RESP){ \t \tアラート(RESP); \t \t \t} \t \t \t})。成功したアラートは空白になります。 – ServerStorm

1

あなたがポストデータ

$(document).ready(function(){ 
    var results = <?php echo($json_results);?>; 
    $("#xls_download_button").click(function(e) { 
     e.preventDefault(); 
     $.ajax({ 
     type: 'post' 
     , data: {'json_results':json_results} 
     , cache: false 
     , url: './libs/common/test.php' 
     });     
    }); 
    }); 

今すぐtest.phpであなたをデコードする必要がJSON文字列として期待値と$_POST['json_results']を持つことになりますjQueryのを与えるところ、私は表示されません。

+0

はい、元の投稿では、例にデータ行を置いていませんでした。投稿した直後に私はそれを編集しました...申し訳ありませんが、例のおかげで。 – ServerStorm

+0

最後の機能では、データはexport_data_to_excel.phpに渡され、データをXLS互換フォーマットに変換し、 '保存'ダイアログが表示されます。この$ .ajax投稿はexport_data_to_excel.phpスクリプトに生成された '保存'ダイアログをどのように返しますか? – ServerStorm

+0

一時的なデータを保存する場所は? export_data_to_excel.phpを呼び出すと、データは解析されますが、(保存するようにユーザに要求する前に)どこかに保存するか、保存ダイアログを返すか、$ ajax.success()のsaveダイアログを表示して表示する必要がありますユーザーは一時的な場所からデータを取得し、必要な場所に保管する必要があることを確認します。 –

関連する問題