12

PHP を使用して、HTML ページからラジオ ボタンの値を取得します。私のHTMLは次のようになります。

<input type="radio" name="1.1" value="yes">
<input type="radio" name="1.1" value="no">

<input type="radio" name="1" value="yes">
<input type="radio" name="1" value="no">

その結果、$_POST['1'] は値を返しますが、$_POST['1.1'] は何も返しません。HTML 4 仕様を確認しました。name 属性の値は文字で始まるだけですが、1 は文字ではありません。1.1 では返されないのに、どうして返されるのでしょうか? それとも、ここで何か他の魔法が起こっているのでしょうか? 最新バージョンの Chrome を使用しています。

4

3 に答える 3

15

HTML の規則により、name属性は任意の値を持つことができます: CDATA 型で宣言されます。この属性を、NAME 型を持つと宣言された属性への参照と混同しないでください。17.4 INPUT要素、 name = cdata [CI]を参照してください。

PHP で を使用する場合、次の$POST[...]PHP ルールに注意する必要があります。「変数名のドットとスペースはアンダースコアに変換されます。たとえば、<input name="a.b" />になり$_REQUEST["a_b"]ます。外部ソースからの変数を参照してください。

そのままで動作するはずです$_POST['1']が、代わりに.$_POST['1.1']$_POST['1_1']

于 2012-04-29T05:46:17.750 に答える
1

ピリオドをハイフンなどの別のものに置き換えてみてください。フォームと PHP コードの両方で。ピリオドは通常.、拡張子名の a に使用されます。

GETヘッダーまたはPOSTヘッダーのパラメーターのキー名に関しては、英数字のみを使用し、通常はいくつかの特殊文字を使用する必要があります。ハイフン、アンダースコアなど。必要に応じて、いつでも URL エンコードを行うことができます。

于 2012-04-29T02:54:51.037 に答える
0

入力項目には、数字ではなくテキストで名前を付ける必要があります。、、、、などの文字を含め.ないで,ください。これにより、問題が発生する可能性があります。データ送信の詳細については、PHP および HTML ラジオ ボタンを参照してください。!?

于 2012-04-29T03:00:18.717 に答える