0

すべてのフォーム要素と入力されたデータをGETリクエストを介してPHPファイルに渡すクエリ文字列を作成しようとしています。

encodeURIComponent入力フィールド名とフィールド値をエンコードするために JavaScript を使用しています。

私が遭遇したのは、$ GET でフィールド値を正しく受け取ったときにフィールド値がうまく渡されたように見えますが、フィールド名のドット (.) がアンダースコア ( ) に置き換えられていることです。

例:

<input type="text" name="form.0.text.0" value="" />

この field.name は PHP スクリプトにform_0_text_0ではなくとして届きform.0.text.0ますが、入力されたテキスト (例: this contains a lot of ....) は問題なく届きます。

クエリ文字列生成の一部として次のコードを使用しています。

+ encodeURIComponent(field.name) + "=" + (field.type == "checkbox" ? (field.checked) : encodeURIComponent(field.value))

何をすべきかについてのアイデアはありますか?

4

1 に答える 1

1

これが「あなたを守る」PHPです。ドットを含む GET 変数を渡そうとすると、アンダースコアに置き換えられます。「.」の置換を停止するには、Get PHP を参照してください。$_GET または $_POST 配列の文字?

名前属性にドットを使用する必要がある場合は、その「保護」を回避する方法があります: https://stackoverflow.com/a/1939911/2397004

于 2013-05-18T16:04:59.677 に答える