こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

GETパラメータの内、空文字のクエリを消去したい

フォームからGETで複数のパラメータを送信するとき、値が空文字のものを表示しないようにすることは可能でしょうか。

たとえば、次のようなフォームを含むform.phpがあるとします。
--------------
<form action="./result.php" method="get">
<input type="text" name="id" size="40">
<input type="text" name="name" size="40">
<input type="text" name="address" size="40">
<input type="text" name="sex" size="40">
<input type="submit" value="送信"><input type="reset" value="リセット">
</form>
--------------

このフォームから、
--------------
id:13
name:佐藤太郎
address:東京都新宿区適当1-2-3
sex:男性
--------------
というデータを送信した場合、送信ボタンを押すと

./result.php?id=13&name=佐藤太郎&address=東京都新宿区適当1-2-3&sex=男性

のページに遷移しますが、
--------------
id:
name:佐藤太郎
address:
sex:男性
--------------
ですと

./result.php?id=&name=佐藤太郎&address=&sex=男性

になります。

このままですとクエリが読みにくいので、
--------------
id:
name:佐藤太郎
address:
sex:男性
--------------
の場合は

./result.php?name=佐藤太郎&sex=男性

と入力値のあるものだけを表示してそれ以外は消去したいです。

というのも、例としたform.phpではパラメータは4つでしたが、現在作成しているフォームではパラメータが21あり、空文字のものも含むと、遷移後の画面のURLがとても見にくいのです。

このようにパラメータを見やすくするようなjavascriptのコードを教えてください。

jQueryは1.7を使用しています。どうかよろしくお願いいたします。

投稿日時 - 2013-02-25 00:20:59

QNo.7963110

困ってます

質問者が選んだベストアンサー

onsubmitで入力チェックを行い、未入力があるときは当該要素をdisabledにする
ただし戻るなどしたときにdisabledになったままが気になるなら
onloadなどでdisabledをfalseにしてやる必要があるかも

投稿日時 - 2013-02-25 01:26:09

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

直接の回答ではないのですが、21もパラメータがあるのなら、POSTにしてはどうでしょうか。

投稿日時 - 2013-02-27 14:27:02

ANo.2

A No1様の回答とほとんど同じですが、

onsubmitで入力チェックを行い、スクリプト内でクエリ文字列を作成。
そのまま、スクリプトからリクエストを送信する。
DOMを変更しないので、「戻る」などを気にしなくてもよいかも…

投稿日時 - 2013-02-25 17:01:40

あなたにオススメの質問