[解決済み] クエリ文字列の中で配列を渡すには?
質問
クエリ文字列で配列を渡す標準的な方法はありますか?
はっきり言って、複数の値を持つクエリ文字列があり、そのうちの1つは配列の値でしょう。 このクエリ文字列の値を配列として扱いたいのですが、配列を分解して他のクエリ文字列変数と区別がつかなくなるようなことはしたくありません。
また、これによると ポストアンサー 著者は、配列のクエリ文字列サポートが定義されていないことを示唆しています。 これは正確なのでしょうか?
EDITです。
Alexの回答から、これを行う標準的な方法はないようなので、私のフォローは、次に簡単な方法は何かということです。 認識 の両方で、読み込んだパラメータが配列であることを確認します。 PHP と ジャバスクリプト ?
複数のパラメータに同じ名前を付けて、それらが配列に属していることを知ることは可能でしょうか?例
?myarray=value1&myarray=value2&myarray=value3...
それとも、これは悪い習慣なのでしょうか?
どのように解決するのですか?
以下は、私が理解したことです。
複数値のフォームフィールドを送信する、つまりGET/POSTのバーを通して配列を送信することは、標準が必ずしも明示されていないため、いくつかの異なる方法で行うことができます。
複数値のフィールドや配列を送信する方法としては、以下の3つが考えられる。
-
?cars[]=Saab&cars[]=Audi
(最良の方法-PHPはこれを配列に読み込む) -
?cars=Saab&cars=Audi
(悪い方法-PHPは最後の値だけを登録します) -
?cars=Saab,Audi
(未試行)
フォーム例
フォーム上では、多値のフィールドは セレクトボックスには、複数の :
<form>
<select multiple="multiple" name="cars[]">
<option>Volvo</option>
<option>Saab</option>
<option>Mercedes</option>
</select>
</form>
(注意:この場合、セレクトコントロールの名前を
some_name[]
そうすれば、結果として得られるリクエストバーはPHPによって配列として登録されます)
... あるいは 同じ名前を持つ複数の隠しフィールド :
<input type="hidden" name="cars[]" value="Volvo">
<input type="hidden" name="cars[]" value="Saab">
<input type="hidden" name="cars[]" value="Mercedes">
NOTE
使用方法
field[]
を複数の値で使用することは、本当に不十分なドキュメントです。の複数値キーに関するセクションには、それについての言及はありません。
クエリ文字列 - Wikipedia
または
W3C ドキュメント
複数選択入力の処理
アップデイト
コメントで指摘されているように、これは非常にフレームワークに依存するものです。いくつかの例を挙げます。
クエリーの文字列です。
?list_a=1&list_a=2&list_a=3&list_b[]=1&list_b[]=2&list_b[]=3&list_c=1,2,3
Railsです。
"list_a": "3",
"list_b":[
"1",
"2",
"3"
],
"list_c": "1,2,3"
Angularです。
"list_a": [
"1",
"2",
"3"
],
"list_b[]": [
"1",
"2",
"3"
],
"list_c": "1,2,3"
(アンギュラー ディスカッション )
の例については、コメントを参照してください。 node.js , ワードプレス , ASP.net
秩序を保つこと。 もう一つ考慮すべきなのは、もしあなたが オーダー つまり、区切られた値のリストを渡して、 それを明示的に配列に変換するという方法です。
関連
-
[解決済み】Laravel 5.2 Storage::makeDirectory($dir) でディレクトリが作成されない。
-
[解決済み】file_get_contents( )が動作しない。
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] 配列からArrayListを作成する
-
[解決済み] 配列に特定のインデックスで項目を挿入する方法 (JavaScript)
-
[解決済み] PHPで配列から要素を削除する
-
[解決済み] JavaScriptでクエリ文字列の値を取得するにはどうすればよいですか?
-
[解決済み】オブジェクトの配列を文字列のプロパティ値でソートする
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】PHP 7.2 - Warning: count(): パラメータは配列かCountableを実装したオブジェクトでなければならない [解決済み]
-
[解決済み】php, mysql - データベースへの接続数が多すぎるエラー
-
[解決済み】Apache + PHPで「ヘッダの前にスクリプトの出力が終了する」件
-
[解決済み】未定義の関数mysql_query()をLoginで呼び出す【重複
-
[解決済み] * vchiqインスタンスを開くのに失敗しました。
-
[解決済み] 入力ファイルが指定されていない
-
thinkphp5 timestamp 非整形の数値に遭遇した。
-
[解決済み] JavaScriptでクエリ文字列の値を取得するにはどうすればよいですか?
-
[解決済み】Fetch GETリクエストでクエリ文字列を設定する。
-
[解決済み] FormDataに配列を追加し、AJAXで送信する。