非同期DBアクセスにajaxを使用したプロジェクトに取り組んでいます。次のように JavaScript 変数に値を格納します。
var content=xmlhttp.responseText;
今私が望んでいたのは、この値を同じページのphpモジュールに渡すことです..私に提案してください..それは緊急です
非同期DBアクセスにajaxを使用したプロジェクトに取り組んでいます。次のように JavaScript 変数に値を格納します。
var content=xmlhttp.responseText;
今私が望んでいたのは、この値を同じページのphpモジュールに渡すことです..私に提案してください..それは緊急です
これを実現するには、別のスクリプトに対して別の AJAX 要求を行う必要があります。PHP はサーバー側であるため、クライアントと直接対話することはできません。
javascript から php に値を渡す必要があるかどうかは不明です。
しかし、私はあなたを与えることができます、
あなたの問題に対する推奨されていないが有効なアプローチ:
あなたは、最初にAjax呼び出しを行っていると言いました。対応するサーバー側 php 関数の処理中に、応答値 (xmlhttp.responseText の値) を$_SESSION変数に格納します。最後に、ajax 応答ハンドラー関数内で (location.reload() を使用して) ページをリロードします。
問題に対する推奨されるアプローチ:
PHP コードに if-else 制御フロー構造をいくつか追加し、ajax 応答値を取得した後にそれらを実行することを期待している可能性があります (残念ながらそれはできません)。したがって、そのようなロジックがある場合は、それらの if-else 条件を対応する Javascript コードに変換してください。JavaScript 関数である場合があり、ajax 応答値を渡してその関数を呼び出します。この新しい関数は ajax 応答値を使用し、必要なロジックを適用して Web ページの一部を変更します。
ここでの他の回答が示すように、PHP はサーバー側であり、JavaScript はクライアント上にあるため、PHP でデータ (コンテンツに割り当てている) を処理する必要があります。このデータを制御するページから取得する場合は、var content = xhr.responseText;
送信する前にデータを変更するだけではありません。たとえば、process.php
サーバー上のファイルに AJAX 呼び出しを行って、JavaScript で割り当てるデータを取得する場合は、content
データを echo() する前に必ず process.php でデータを処理してください (その後、クライアントの内部content
に保存されます):
process.php 内:
// below is the normal server script which you are storing in content on the client
// echo $result;
// instead, we are going to operate on the data first:
return doSomething($result);
次に、クライアントで:
var newContent = xhr.responseText;
変数には、newContent
以前に PHP で変更したかったデータが含まれます。AJAX で呼び出しているサーバー スクリプトを制御できない場合は、既に説明したように、PHP を使用してサーバーに 2 番目の AJAX 呼び出しを送信し、$_GET
またはを使用してそのデータ$_POST
を取得してから操作する必要があります。content
そこに。