AJAXリクエストからPHPを使って情報を返す方法は?

私はAJAXについて学び、自分のローカルサーバーからの最初の要求を行い、XMLまたはHTMLファイルのみを要求し、それほど難しいことはありません。私はPHPを使って作業していますが、XML/HTMLを使用するよりもあまり違いはありません。

チュートリアルを進めながら、私はJavaScriptに情報を返すいくつかの異なる方法を見てきました。私は、「正しい」道があるかどうか、あるいはこれを行う「もっと正しい」道があるかどうかについて興味があります。ここまで私は3つの方法に遭遇しました:

someFile.php:

<?php
$foo = $_GET['bar'];

// manipulate $foo

exit($foo);//method 1
echo $foo; //method 2

// method 3:
?>

<div id='baz'>
    
Some output to be returned to JavaScript as the 'responseText' property of the AJAX request.


<?php echo $foo ?>

</div>

私は、サーバーからブラウザに情報を返すプロセスを単に確信しています。すべてのものが返されますか?人々が実際に訪れるはずだったページであれば、表示されるものは何ですか?ご協力ありがとうございます!

1

4 答え

ブラウザが要求したHTML/JSON/XML文書を生成するプログラムとしてPHPスクリプトを見る必要があります。 AJAXでは、ブラウザはまったく同じことを行います。ドキュメントに特定のURLを要求します。 JavaScriptやJavaScriptを使用してページに統合されるのは、単なるフラグメントまたはJSONだけです。

AJAXは一般的には、これまで "exit(...)"アプローチは見ていませんが、どちらのアプローチも正しいとは言えません。ドキュメントを生成するものは何でも動作します。

ベストプラクティスに関しては、ドキュメントの生成から計算を分離したいと思うかもしれません。しかし、私は基本的なPHP、HTML、AJAXなどで最初にもっと多くの経験を積むべきだと思います。あなたが書いているアプリケーションが非常に大きくなり、コードの周りであなたのやり方を見つけるのが難しくなったら、MVC計算の分離(ビジネス/モデルロジック)とドキュメント生成(ビュー)の問題を解決するPHPのフレームワークです。私はSymfonyが普及していると聞きます。

5
追加された
だから、確かに、PHPから返されるページは、AJAXリクエストでresponseTextとして受け取られるでしょうか?あなたの説明をありがとう、それは本当に私を 'ええ!
追加された 著者 dunnza,
私は "responseText"あなたのAJAX応答を書く変数ですか?その場合、はい。 jQueryでは、これは "成功"コールバック関数に渡される "データ"パラメータになります。
追加された 著者 lsinger,

人々がページに直接アクセスできるようにしたい場合は、上記のコードがうまく動作します。しかし、(_POST ['somevalue'] == 'login')と$ ajaxからPOSTでデータを送信する場合は、ページの上部に置かれたページを安全にしたい場合。 jQuery ajax onSuccess $(div).html(data)などで分かっていれば、残りの部分は同じです!

1
追加された

私は通常、サーバーから返信する複数の値を持っていますので、

<?php echo json_encode(array('name' => 'Michael', 'email' => '[email protected]'); ?>

私はオブジェクトのように簡単にアクセスできます。

alert(response.name);

jQueryなどのJSライブラリを使用してみてください。それはかなり簡単です。

1
追加された

私はいつも何をしていますか?

<?php
header('Content-type: text/plain; charset=utf-8');
echo $foo;
exit;
?>

(はい、この例では exit を使用する必要はありません)

0
追加された
私だけです。私は、応答に空白がないことを確信しています。
追加された 著者 Peter,
好奇心のために、なぜ出口を追加しますか?
追加された 著者 roselan,
わかった、わかった。それは私だけですが、コード内に「何もしない」ものを見るのは嫌いです。私はなぜここにいるのかを理解するために時間を費やすので、全体的に私は
追加された 著者 roselan,
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com

JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript