2016-06-23 6 views
0

私はAjaxの結果をdiv要素に格納しています。これがうまく機能している:ajaxの結果をPHP変数に出力するにはどうしたらいいですか?

のindex.php:

<div id="result"></div> 

function submit($form) { 
    $.ajax('myajax.php', { 
     method: 'POST', 
     data: $form.serialize(), 
     success: function (result) { 
      $('#result').html(result); 
     } 
    }); 
} 

myajax.php:

echo "12345"; 

私はのような何かをしたいと思います:

function submit($form) { 
    $.ajax('myajax.php', { 
     method: 'POST', 
     data: $form.serialize(), 
     success: function (result) { 
      $result = result; 
     } 
    }); 
} 

は、することが可能ですこのようにdivの代わりに結果をPHP変数に出力しますか?あるいは、これを達成する別の方法がありますか?

+2

これは意味をなさない。 PHPはあなたに*値を送ります( 'myajax.php'から)。なぜあなたはサーバー側のコードに*あなたに言った値を伝える必要がありますか?ここで実際に何を達成しようとしていますか? – David

+0

これは、このPHP変数$ resultで何をするつもりかによって異なります。その後、この結果が必要なのは何ですか? –

+0

実際にこの質問に間違いはありません。これはかなり標準的なAjax使用法の質問です。「PHP変数を設定するにはどうすればよいですか」という質問ではありません。 –

答えて

1

はい、あなたが提示した手法を使って完全に可能です。実際、Ajaxの基本的な目的は、クライアントで取得できる情報を収集し、クライアントページを置き換えなくてもバックエンドサーバ(この場合はPHP)に非同期で送信することです。

どうすればよいですか?ここではいくつかの一般的に使用される例は以下のとおりです。

  • 非同期
  • チャット
  • アップロードファイルデータ、ユーザからのフォーム入力を取得
  • の共同プレゼンテーションとも設計(より良いオプション(より良いオプションは、今日あるが)利用可能)

いくつかのより少なくより一般的な例:

  • クライアントリソース(CPU、メモリ)を使用して分散計算を実行する(SETI @ homeと考える:ブラウザ経由)
  • CSRFなどの一意のトークンをサーバーに送信するクライアントヘルス/オンラインチェックタイマー
  • あなたが送信しようとしているデータの正確な詳細なしパーサ

/軽量、専用のWeb/APIスクレイパーなどのブラウザを使用するには、与えることはできませんあなたがすでに提供しているものよりも良い例です。データを転送するためにフォームをシリアル化する場合は、データを<div>に保存することはできません。 a)隠しフォームフィールドを使用するか、b)送信する要素を手動でシリアル化する必要があります。

あなたの質問は、あなたが確かに正しい道を考えていることを示しています。もっと徹底的な答えを出すために実際に達成しようとしていることについてもっと知りたいと思います。

+0

ありがとうございます。 myajax.phpでは、単にindex.phpに複数回使用したい数値を生成しています – Jarla

関連する問題