PHPからJavaScriptへの変数を取得します。 JavaScriptでPHP変数を使用する方法

多くの初心者Webプログラマーは、JavaScriptからPHPに変数を転送する方法に興味がありますか? そしてさらに多くのプログラマーがそれが一般的に必要な理由を理解することはできません。 誰もが自分のために見つけることになる2番目の質問に対する答えが、それがどのように機能するかを説明します。

JavaScriptはユーザー側で実行され、サーバー側のPHPが直接送信できません。 したがって、実行結果 javaScriptコード 私たちはPHPを通して与えます hTTPプロトコル。 私たちはいくつかの方法を見るでしょう、そして誰もがそれを使うべき方法を決めるでしょう。

ファッション第一

PHPのマニュアルで説明されているように、JavaScriptコードページに対応するか、サーバー側で生成する必要があります。ユーザーのブラウザに転送してください。 この例では、ユーザー画面の幅と高さを定義します。

// $ widthの存在と$高さ変数の存在を確認する //変数が存在する場合は、取得した値を画面に表示します。 エコー「スクリーン幅:」。 $ _get ["width"]。 ""
\\ n ";エコー"画面の高さ: "$ _get [" height "]。"
\\ n ";) //変数が存在しない場合は、次のようになります。 そうしないと ( // PHPはJavaScriptコードを生成します。これはブラウザ//ユーザーを処理し、HTTPプロトコルを介してPHPスクリプトの値を送信します。 エコー。 "\\ n ";)?\u003e

ユーザーのブラウザがJavaScriptをサポートしている場合は、スクリプトを実行してから、ページが更新されます。 住所欄 問い合わせ:

http:// pow_k_script ___ script.php?width \u003d 1024&Height \u003d 768

符号? スクリプト名がPHPスクリプトに取得したいWebサーバーをPHPスクリプトに指すWebサーバーをポイントします。これは、VariabeCript関数によって定義されたそれの値に変数を割り当てます。 照会&クエリ内の変数の区切り記号として署名します。 その結果、同じ画面幅(1024)、等しいスクリーンの高さ(768)を持つ$高さ(1024)と$ HEIGHTで2つの変数がPHP:$ widthに転送されます。

そして画面上で、スクリプトの結果が表示されます。 例えば:


得られた結果:ユーザー画面の幅と高さ

第二の方法

JavaScriptコードを書き、ユーザー側で実行してから、PHPのHTTPプロトコルで結果を送信します。


ここでは、前の例のように、ユーザー画面の幅と高さを持つクエリ変数要求を割り当てました。 このコードの実行の結果として、クエリ変数にはwidth \u003d 1024&Height \u003d 768の文字列が割り当てられます(画面1024x768を解決するとき)。

これで、クエリ変数をJavaScriptからPHPに転送する必要があります。 script.phpという名前のPHPスクリプトにリクエストを転送するには。 これを行うには、HTMLタグを使用します HTMLページに画像を挿入します。 写真の代わりに私達のPHPスクリプトの名前を指定し、クエリ変数をクエリと共に接続します。


このようにして、任意のスクリプトに要求を転送できます。 これら2つのJavaScript-Codeブロックを実行した結果、ユーザーブラウザは次のHTMLコードに変わります。


ブラウザが写真の写真に変わります 指定された住所 そしてその結果、必要なパラメータを使用してscript.phpに要求を取得します。 今度は、私たちのscript.phpで取得した変数を処理できます。

//変数$ widthと$ heightの存在を確認する if(isset($ _ get ["with" with "])とISSET($ _ get [" height "])) //ここでは、変数// $ widthと$ heightが存在する場合に実行されるコードを書きます。 たとえば、//テキストファイルに書くことも、データベースに追加することもできます。 ) そうしないと ( //ここで、変数が//存在しない場合、またはelse()を使用できない場合に実行されるコードを書きます。 } ?>

方法第3

ユーザーが参照を参照した後、データはPHPスクリプトに転送されます。


またはフォーム内のボタンに:


フォームが使用されている場合、各変数は別のフィールドで送信されなければなりません。 フォームの隠されたフィールドを使用しました。その名前は、PHPスクリプト内の変数の名前に対応しています。 あるいは、テキストフィールドをまったく使用することはできませんが、このフォームのパラメータaction \u003d ""を介してすべてのデータを転送できます。

結論

最初の方法は、ページを更新し、PHPスクリプトを取得したデータを渡す必要があるJavaScriptコードを処理した後にブラウザがあまり便利ではありません。 2番目の方法を使用する場合、PHPのJavaScriptからのデータ送信は、ページの内容を更新せずにユーザーが注目されていません。 3番目の方法は最初の2つと同じ結果を与えますが、リンクまたはユーザーボタンを押す必要があります。 使用する最善の方法は何ですか? それはすべてタスクセットによって異なります。

これらのメソッドのいずれかは、PHPだけでなく、Perl、ASP、またはWebサーバー側で実行される他のプログラミング言語でもValueを送信するために使用できます。

コピー品は禁止されています。

場合によっては、伝える必要があるかもしれません PHPグローバル変数 JavaScriptスクリプトで。 この記事では、JavaScriptでPHP変数の使用方法を説明し、いくつかの例を示します。

JavaScriptのPHP変数

PHP変数をJavaScriptコードに有効にする必要があるかもしれないシナリオがいくつかあります。 たとえば、サイトページがユーザーから要求されると、サーバー上のPHPモジュールは計算を実行し、ブラウザウィンドウにすべてのページ変数を表示することによってページを生成します。

ページロードが完了したら、それを制御しなくなりました。 一時的な操作に基づいてサーバーがある場合の場合を除いて)。 ただし、ページのダウンロード中にPHP変数をJavaScriptコードに送信すると、JSスクリプト内でそれらを使用してページ表示とその動的動作を管理し続けることができます。

今どのようにできるかを検討してください javaScriptからPHPに変数を転送します またはその逆も同様です。

PHP変数を組み込みのJavaScriptに転送する方法

HTMLページでJavaScriptコードを有効にするための2つの主な方法があります。 まず - セクションの同じページにコードを持っています またはIn. 。 セクションにはJSコードが内蔵されているとします。 そして、JavaScriptでPHPのユーザー名変数を転送します。 この場合、次のコードを使用する必要があります。

...

私たちはJSで新しい変数を定義し、それをユーザー名と呼びました。 その後、この変数JS PHPを使用して$ username変数を繰り返します。 当然のことながら、$ username変数はこの文字列の上のページ上で前述のページで定義する必要があります。

$ usernameを表示するPHPコードの周囲には、js内の変数を宣言するときの二重引用符( ")を使用しました。 PHP変数が数値の場合は、引用符を使用する必要はありません。 しかし、出力文字列に引用符を含めることができ、JSコードを破る可能性があるため、必ず引用符を正しく使用したことを確認してください。

PHP変数を外部JavaScriptに転送する方法

また、JSコードは外部ファイルに格納できます( たとえば、script.jsです。) と関連した hTMLページ 。 たとえば、時間変数の値(秒)の値をJSタイマーに転送する場合は、次のコードを使用できます。

...

外部JSファイルのコード( script.js):

setTimeout(関数()(window.location.href \u003d "/";)、秒* 1000);

上記のコードでは、まず$ seconds変数js秒のPHP値を初期化します。 その後、変数はDOM、およびプラグインスクリプトで使用可能になります( script.js)それを使うことができます。 上記の例では、ユーザーはにリダイレクトされます。 メインページ 設定時間間隔の後。

ヒント:PHPとJavaScriptでは、コード内でそれらを使用する前に変数を識別していることを確認してください。 それ以外の場合は、エラーメッセージ「未定義の変数」を受け取り、コードは機能しません。

私はこの記事が役に立つことを願っています、そしてあなたはそれを友達と共有します。

記事の翻訳 JavaScriptにPHP変数を含める方法"フレンドリーなチームチームによって準備されました。

良し悪し

    このスクリプトでは、訪問者にあなたのサイトへの訪問者のための任意のヒントと広告を追加できます。 このスクリプトは、外部のJavaScriptファイルでtotdmsg.jsとtotd.jsとhtmlファイルで構成されています...

言語から言語に変数を転送するという問題 - 初心者の問題はなぜですか。 それをすることは不可能だから! プログラミング言語それぞれ独立して機能します。 そしてそれらの間の直接の転送は不可能です。 今、私はその理由を説明します。

事実は、PHPとJavaScriptは関連する条件付きのみです。 PHPはサーバー上で実行され、JavaScriptはブラウザにあります。

インターネットのアルゴリズムを思い出させてください。 つまり、住所を要求するとどうなりますか。

  1. ブラウザはリクエストヘッダーをフォーマットし、自分自身に関する重要な情報を結合してこのアドレスに送信します。
  2. サーバーはヘッダーを取り、あなたが文書を支払う必要があるものを理解します。 彼は文書が要求されていないがプログラムであることを理解しています。 それから彼はこのプログラムを起動し、彼がブラウザから受け取ったすべてのデータを提供します。
  3. プログラム(PHPスクリプト)は、その作業の結果を始動し、機能し、単に印刷します。 作業の結果は、JavaScriptスクリプトが有効になっているHTMLページかもしれません。 しかし、現時点ではPHPとJavaScriptの仕事は他のデータとは異なりません。 ただ鼓動します。
  4. サーバーはどのプログラムを印刷したかを受け取ります。 応答ヘッダーを添付し、それを要求されたブラウザにすべて参照します。
  5. ブラウザはページコードを受信して\u200b\u200b表示します。 fe ファイル (JS、CSS、Pictures)、それらをHTMLコードに適用します。 また、JavaScriptはブラウザに含まれています。

この作業指示書をよく見れば、質問に答えることができます

PHPからJavaScriptに変数を転送する方法

実行中に必要です pHPスクリプト ブラウザで実行できるようにそのようなテキストを形成するだけです。 例えば。

alert("".$var.""); ?>

そのようなコンテンツを含むPHPファイルを作成してブラウザから起動すると、空のページと警告メッセージが表示されます。

もちろん、構文はJavaScriptでなければならないことを忘れないでください。 実際、PHPでJSコードを作成するとき - 最初のPHPで何かを生成し、これは有効なJSでなければならないことを忘れないでください。

この場合、当社のPHPスクリプトは文字列を形成します。

そしてこれはかなり正しいJavaScriptです。これはブラウザによって実行されます。

JavaScriptからPHPに変数を転送する方法

あなたは推測することができます、物事はより困難です。 結局のところ、PHPはJSを生成しますが、フィードバックは特に暗示されません。 それで、あなたが望むことはありませんが、サーバーに新しい要求を作成し、スクリプトのデータを渡す必要があります。 2つあります。 実装は、同期および非同期要求を通しての両方を通してすることができます。 同期はページの再起動を引き起こし、非同期使用AJAXを使用します。

JavaScriptからのPHPにおける同期データ転送方法

このコードはすぐにhttp://syt/index.phpでユーザーをリダイレクトしますか?メッセージ\u003d hello%2c%20Server!

index.phpファイルのPHPコードはGETからデータを受け取り、超グローバルアレイを作成します。

PHPのJavaScriptからの変数の非同期送信

これはAjaxの使用を意味します。 実際、前の場合と同じですが、ブラウザページは再起動しません。 ライブラリを使用してこれを説明する最も簡単な方法。

ご覧のとおり、まだ簡単です。 EncodeUrcomponent関数を適用する必要はありません、それは私たちのためにjQueryを適用します。 サーバーの応答を受け入れてデータ変数に折りたたむ機能について説明します。 index.phpが$ _get変数の値だけを返す場合は、テキスト「サーバーが返信しました:Hello、Server!」というテキストを含むアラートが表示されます。

PHPからJavaScriptへの複雑なオブジェクトの転送

PHPからJavaScriptを生成するときは、JavaScriptの構文を守る必要があります。 したがって、PHPプレゼンテーションからJavaScriptへのデータを翻訳する必要があります。 JSONとJSON_ENCODE()関数を使用してこれを行う最も簡単な方法では、オブジェクトを回します。 pHP Stringでは、JavaScriptエンジンを実行するときには、オブジェクトJavaScriptを入力します。

「123」、「キー」\u003d\u003e「値」); $ JS_OBJ \u003d JSON_ENCODE($ AR); 印刷する」"; ?>

ここであなたは混乱し始めることができます。 しかし、ひどいものは何もありません。 シーケンスを覚えておくのに十分です。 まず、PHPが実行され、次にJavaScriptが実行されます。 PHPの実行が次のようになります。

テキスト "123"で米国で実行するとき。

合計

PHPがJSを生成することを忘れないでください。したがって、データを送信するのは非常に簡単です。 HTMLが形成されているだけでなく、JSも作成する必要があります。 JavaScriptの構文で。

PHPのJSからのデータの場合、追加の要求が常に使用されます。 どのように実行されています - 10番目の事業。 例えば、形態を形成して送信することができる。 またはIFRAMEを開く。 しかし、本質は残ります。 この本質を理解するには、ブラウザからサーバーにデータを転送でき、戻ることは非常に簡単です。

それは、私が複雑な技術的問題と率直に迷いにくいの両方に答えなければならない活動の性質によって起こりました。 何をすべきか、さまざまな専門家の準備のレベルは異なります。

尋ねられた:「JavaScriptからPHPに変数を転送する方法」 この質問に対する答えは、JavaScriptとPHPがさまざまな物理マシンで実行されるという事実から始めたいと考えています。つまり、このプロセスの通常の理解では、それは機能しません。

JavaScriptはクライアントマシン(クライアント)、およびサーバー上のPHPで実行されているので、JavaScriptとPHPの間のデータ伝送を呼び出します。「Client-Server Exchange」という用語は、より正確になります。

Webデータ交換では、次のスキームに従って作成されます。クライアントからの要求がサーバーに送信され、この要求はサーバーによって処理され、その後、その後クライアントにいくつかのデータを返します(回答)。 この交換方法はブラウザ自体を使用しています。 アドレスバーで得点するURL - および要求があります。 そして、答えはHTMLです。これはブラウザページに表示されます。

ただし、サーバーからのデータはブラウザ自体を要求する必要があります。 ページ上で回転しているJavaScriptに関するあなたのコードは、クライアントとして機能することもできます。 これを行うには、組み込みのXMLHTTPRequestブラウザコンポーネントを使用します。これは、それ自体がサーバーへの要求を生成し、それからの応答を受け取ることができますが、HTMLページ自体は更新されずに変更されません。

XMLHTTPRequestオブジェクトを介してサーバーを操作することは、多くの人気のある単語AJAXと呼ばれることがよくあります。

ただし、私は個人的にこのオブジェクトと直接作業することをお勧めしません。 その事実はON 別のブラウザ それは少し異なります、そしてそれはコードで考慮に入れる必要があります。 さらに、「クリーン」JavaScriptにはイベントを操作するための便利なツールがありませんので、まともな「ポートチュニック」コードを持つことになります。これも「バグのバグ」です。

このライブラリを使用したコードはかなり単純で簡潔に取得されます。 たとえば、値V \u003d 6789をサーバーに渡す必要がある場合は、次のコードを実行できます。

jQuery.get( "/ index.php?v \u003d 6789"、関数(結果)(警告(結果)))。

この場合、/index.phpのスクリプトは変数$ _get ['v']に値を取得します。 そして彼が出力ストリーム(例えば、エコーを使用するなど)を撤回することは結果変数に分類され、alert()ポップアップダイアログに表示されます。

あなたが見ることができるように、すべてが単純です。

POST経由でデータを送信すると同様に、JSON(最も頻繁に使用される方法)にエンコードされたデータを送信することもできますが、jQueryのマニュアルで自分で読むことをお勧めします(methods.ajax()、.post()を参照)。 。

8返信

HTML / HTTPはapatrid、言い換えれば、前のページで何をした/見たものは現在のページと完全に接続されていません。 セッション、クッキー、またはGet / Postのようなものを使用しているときを除いて。 私のセッションI. クッキーファイル 使いやすく、セッションはクッキーよりもはるかに安全です。 より安全ではなく、完全に安全ではありません。

セッション:

// Page 1 $ _Session ["varname"] \u003d $ var_value; // 2 $ var_value \u003d $ _session ["varname"];

session_start()を実行することを忘れないでください。 $ _SESSION配列にアクセスする前にこれらの両方のページで、出力がブラウザに送信されます。

// 1ページ1 $ _cookie ["varname"] \u003d $ var_value; // 2 $ var_value \u003d $ _Cookie ["varname"];

セッションとCookieファイルの間の大きな違いは、クッキーを使用する場合はクライアントとクライアントでクライアントを使用すると、変数の値がサーバーに保存されることです。 セッション間でデータを保存する場合を除き、セッションの代わりにクッキーを使用するのに重大な理由を考え出すことはできませんが、それでもそれらをデータベースに保存してユーザー名または識別子に基づいてそれらを取得することは可能です。 。

GETとPOST。

"\u003e Page2.

これにより、変数GETが作成されます。

もう1つの方法は、2ページ目に表示されているフォーム内の隠しフィールドを有効にすることです。

そして、2番目のページで:

// $ var_value \u003d $ _get ["varname"]を使用します。 // POST $ var_value \u003d $ _post ["varname"]を使用します。 // Get、Post、またはCookieを使ってください。 $ var_value \u003d $ _REQUEST ["varname"];

メッセージを通じて実行したい場合は、投稿フォームメソッドを変更してください。 どちらも同様に危険ですが、Getはハッキングが簡単です。

セッションデータを除いて、すべての新しい要求がPHPでエンコードを開始したときに、スクリプトのまったく新しいインスタンスが捉えているという事実。 これに慣れるとすぐに、それはかなり単純です。

上記の答えをありがとう。 ここで、私がしたように、私はこれが続く人々を助けることを願っています。 regnameとRegValueから別のページへの登録番号を伝えたいのです。

最初のページを作成し、名前を付けます set_reg.php。:

2番目のページを作成し、名前を付けます get_reg.php。:

set_reg.phpに戻る。

答えが高いほど完全ではありませんが、私の目的のためには単に異なる要素間の関係を示しています。

あなたはそれを隠しフィールドとしてあなたの形に挿入するか、あなたのフォームのアクションのURLを追加することができます

エコー " ";

エコー "

";

データ送信時のHTMLentiesとURLENCODEの使用も示しています。

セッション内のデータ転送

データをクライアント側に送信する必要がない場合は、セッションをより適切にすることができます。 各ページの先頭にSession_Start()を呼び出すだけで、データを取得して$ _Session配列に設定できます。

安全性

あなたの値が実際にファイル名であることを指定すると、セキュリティの結果について知る必要があります。 ファイル名がクライアント側から来た場合は、ユーザーがこの値で介入したとします。 信頼性をチェックしてください。 ユーザーがコントロールの下にある重要なシステムファイルまたはファイルへのパスを送信するとどうなりますか? スクリプトを使用することができます。

ここではっきりしているので、$ _GET、$ _POST、または$ _COOKIEで受信されたデータに関するものであることを言及する価値があります。 最悪の敵がこれらの配列の内容とコードの内容をそれぞれ作成したとします。

PHPに値を送信する方法は3つあります。

  • 郵便で
  • 取得する
  • セッション変数を設定します

これら3つの方法は異なる目的に使用されています。 たとえば、次のページで私たちの意味を取得したい場合は、次のようにPOSTメソッド($ _POST)を使用できます。

$ A \u003d $ _ POST ["フィールド名"];

複数のページに変数の値が必要な場合は、セッション変数を次のように使用できます。

$ A \u003d $ _セッション["フィールド名];

この構文を使用してセッション変数を作成する前に、まずPHPページの最初にこのタグを追加する必要があります。

session_start();

GETメソッドは通常、ユーザーからデータを入力するために使用された同じページ上のデータを印刷するために使用されます。 その構文は次のとおりです。

$ A \u003d $ _ get ["field-name"]を取得します。

POSTメソッドは通常、GETメソッドを使用するときよりもURL文字列にデータを表示できるときは、GETよりも安全です。 データがパスワードなどのより機密なデータの場合は、Inggerisになることができます。

トピックを続ける:
os

HTTPSが必要な場合は「サービスへのリンクを追加する」を登録したWebサービスがあります。 以下はインスタンスを作成するための私のコードです...