PHPとHTMLは多くの相互作用をします。PHPはHTMLを生成でき、HTMLはPHPに情報を渡すことができます。 これらのfaqを読む前に、外部ソースから変数を取得する方法を学ぶことが重要です。 マニュアルページはこの話題を含む多くの事例です。

フォーム/URLを介して値を渡すときに必要なエンコーディング/デコードは何ですか?

エンコーディングが重要ないくつかの段階があります。, エンコードされていない方法で渡したい文字列を含む文字列$dataがあると仮定すると、これらは関連する段階です:

  • HTML解釈。 ランダムな文字列を指定するには、二重引用符で囲み、htmlspecialchars()値全体を含める必要があります。

  • URL:URLはいくつかの部分で構成されます。 データを一つのアイテムとして解釈するには、urlencode()でエンコードする必要があります。,

例#1非表示のHTMLフォーム要素

<?php
echo '<input type="hidden" value="' . htmlspecialchars($data) . '" />'."\n";
?>

注:urlencode()$dataは、データをurlencode()するブラウザの責任であるため、間違っています。 すべての大人気ブラウザでいます。 これは、メソッド(つまり、GETまたはPOST)に関係なく発生することに注意してください。 ただし、POST要求は通常隠されているため、GET要求の場合にのみこれに気付くでしょう。,

注:ブラウザはHTMLエスケープされたシンボルを解釈するため、データは意図したとおりにブラウザに表示されます。 送信すると、GETまたはPOSTのいずれかを介して、データは転送のためにブラウザによってurlencodedされ、PHPによって直接urldecodedされます。 したがって、最終的には、urlencoding/urldecodingを自分で実行する必要はなく、すべてが自動的に処理されます。,

Url内の例3

<?php
echo '<a href="' . htmlspecialchars("/nextpage.php?stage=23&data=" .
urlencode($data)) . '">'."\n";
?>

注:実際にはHTML GETリクエストを偽造しているため、データを手動でurlencode()する必要があります。

注:URLはHTML属性の値として発生するため、URL全体をhtmlspecialchars()する必要があります。 この場合、ブラウザは最初に値をun-htmlspecialchars()してからURLを渡します。 データをurlencode()dするため、PHPはURLを正しく理解します。, URLの&&amp;に置き換えられていることに気付くでしょう。 ほとんどのブラウザの復興を忘れてしまった場合は、ここだけではない可能です。 したがって、URLが動的でない場合でも、URLをhtmlspecialchars()する必要があります。

<入力タイプ=”image”>タグを使用しようとしていますが、$fooです。xと$foo。y変数は使用できません。 $_GETも存在しません。 彼らはどこだ?,

フォームを送信するときは、標準の送信ボタンの代わりに画像を使用することができます。

<input type="image" src="https://www.php.net/manual/en/faq.html.phpimage.gif" name="foo" />

ユーザーが画像のどこかをクリックすると、添付のフォームはfooという二つの追加変数を使用してサーバーに送信されます。xおよびfoo。y.

fooだからです。xおよびfoo。yはphpで無効な変数名を作成し、自動的にfoo_xとfoo_yに変換されます。, いまアクセスこれらの変数のようにその他の記載内の変数の取得を外部から。 たとえば、$_GETです。

メモ:

要求変数名のスペースはアンダースコアに変換されます。

HTMLで配列を作成するにはどうすればよいですか<フォーム>?,

取得するには<フォーム>結果を配列としてPHPスクリプトに送信するには、<入力>、<選択>または

または

または

または

または

div id=”aef5132865″>

textarea>このような要素:

<input name="MyArray" /><input name="MyArray" /><input name="MyArray" /><input name="MyArray" />

変数名の後に角括弧があることに注意してください。, 同じ名前を異なる要素に割り当てることで、要素を異なる配列にグループ化できます。

<input name="MyArray" /><input name="MyArray" /><input name="MyOtherArray" /><input name="MyOtherArray" />

これにより、PHPスクリプトに送信されるMyArrayとMyOtherArrayの二つの配列が生成されます。 配列に特定のキーを割り当てることもできます。

<input name="AnotherArray" /><input name="AnotherArray" /><input name="AnotherArray" /><input name="AnotherArray" />

別の配列には、0、1、email、およびphoneのキーが含まれるようになりました。

メモ:

配列キーの指定はHTMLではオプションです。, キーを指定しない場合、配列は要素がフォームに表示される順序で入力されます。 最初の例には、キー0、1、2、および3が含まれます。

外部ソースからの配列関数と変数も参照してください。

select multiple HTMLタグからすべての結果を取得するにはどうすればよいですか? HTML構造のselect multipleタグを使用すると、ユーザーはリストから複数の項目を選択できます。 これらの項目は、フォームのアクションハンドラーに渡されます。 問題は、それらがすべて同じウィジェット名で渡されることです。 すなわち,

<select name="var" multiple="yes">

選択された各オプションは、アクションハンドラに次のように到着します。

var=option1var=option2var=option3 

各オプションは、前の$var変数の内容を上書きします。 解決策は、PHPの”フォーム要素からの配列”機能を使用することです。 以下を使用する必要があります。

<select name="var" multiple="yes">

これはPHPに$varを配列として扱い、varに値を代入するたびに配列に項目を追加します。 最初の項目は$var、次の$varなどになります。, Count()関数は選択されたオプションの数を決定するために使用でき、sort()関数は必要に応じてオプション配列をソートするために使用できます。

JavaScriptを使用している場合、要素名にを使用すると、要素を名前で参照しようとすると問題が発生する可能性があります。 代わりに数値フォームの要素IDを使用するか、変数名を一重引quotesで囲み、それを要素配列のインデックスとして使用します。

variable = document.forms.elements']; 

JavascriptからPHPに変数を渡すにはどうすればよいですか?,

Javascriptは(通常)クライアント側の技術であり、PHPは(通常)サーバー側の技術であり、HTTPは”ステートレス”プロトコルであるため、二つの言語は変数を直接共有すること

ただし、両者の間で変数を渡すことは可能です。 これを実現する一つの方法は、PHPでJavascriptコードを生成し、ブラウザ自体を更新して、特定の変数をPHPスクリプトに戻すことです。 以下の例は、これを行う方法を正確に示しています-PHPコードが画面の高さと幅をキャプチャできるようにします。,

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です