したがって、ページの現在のクエリ文字列を保持している間に、自分自身にページを送信しようとしています。?key = valを使用したフォームの送信アクション属性にすでにあるクエリ文字列は、そのクエリ文字列を無視します。
したがって、ページはsb.local/sb/cat.php?brandcode=JM&t=cat_items
です。クエリ文字列を引き出し、html形式に戻してパラメータを保存します。これは、結果の形式である:私はAetrex(値AX)のドロップダウンを選択してフォームを送信すると
<form id="brand-select" method="get" action="?brandcode=JM&t=cat_items" name="brand-select">
Brand:
<select id="brandcode" style="width:207px" tabindex="3" name="brandcode" required="">
<option value=""></option>
<option class="brand-option" value="AX" data-brandid="110"> Aetrex </option>
<option class="brand-option" value="AL" data-brandid="12"> Alden </option>
<option class="brand-option" value="ETC" data-brandid="11"> Etc </option>
</select>
<input type="submit" value="go">
</form>
、しかし、それはのURLに行く:
つまりsb.local/sb/cat.php?brandcode=AX
、それはカットその行動にある "t = cat_items"を出してください。それはまた、 "brandcode = JM"を切り捨てますが、重複しているのでほとんど期待しています。
これは私が期待していたものではなく、アクション属性にクエリ文字列があると、そのクエリ文字列にフォーム値を追加することが予想されます(例:sb.local/sb/cat.php?brandcode=JM&t=cat_items&brandcode=AX
。形をしている要素
フォームアクションは、クエリパラメータを格納するためにのみ、より基本的なURL情報を使用できない属性です
編集:。?私は、すべてのパラメータを解析することによってこの問題を回避することができていること注意変更を許可したいパラメータを除いて、各パラメータを手動で独自の非表示フィールドに設定すると、私はもっと単純な方法があると思っていただけです。
矛盾しないクエリ文字列でテストしましたが、競合が発生していなくても(Firefoxで)置き換えられました。そのため、フォームを取得するアクション属性ではクエリ文字列が役に立たないようです。あるいは私は何かを逃している。
[クエリ文字列paramsと隠れたパラメータを含むGETフォームを送信する]の重複が可能です。(http://stackoverflow.com/questions/1116019/submitting-a-get-form-with-query-string-params-and -hidden-params-disappear) – isherwood