• ベストアンサー

PHP リセットボタンをクリックしたら一部リセット

メールフォームとかで、リセットボタンをクリックすると全ての値がリセットしてしまうのですが、全部ではなく、一部だけリセットしないといったものは可能でしょうか? <input size="20" type="date" name="日付" /> /* リセットボタン */ <input type="reset" value="リセット" />

  • nkmyr
  • お礼率67% (403/600)
  • PHP
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
  • asciiz
  • ベストアンサー率70% (6636/9403)
回答No.2

type=reset ボタンは、フォーム全体をリセットします。それは過去から引き継ぐ互換性を保つため、変えられません。 なので、普通にボタンを作って、個別にクリアする動作を書けば良いでしょう。 (PHPじゃなくてJavaScriptですけど) 例) <input type="button" value="日付クリア" onClick="document.form1.date.value='';"> あ、上記を実行するのに、<form name="form1" ~> と、名前がついている必要があります。 ※プロポーショナルフォントだと見づらいですが、onclick=""の中でヌルストリングを書くのに、シングルクォートを使ってます。 1文字ずつくくると、value 以降はこう書いてます。 ↓ (前略)value = 「’」「’」「;」「”」 クリア項目が複数あったり、複雑な処理をしたい場合には、スクリプト部をHEAD内に書き、ボタンでは関数呼び出しだけにした方がすっきりすると思います。 (headタグ内) <script type="text/javascript"> function clear_date() { document.form1.date.value = ""; /* 他の項目クリアや処理など */ } </script> (body - form部) <input type="button" value="日付クリア" onClick="clear_date()"> -- しまった別関数にするならちゃんとPHPでの書き方がある気が(汗

nkmyr
質問者

お礼

ありがとうございます。 おかげさまでできました。

その他の回答 (1)

回答No.1

FORM自体を2個に分けてしまえばOKです。 「それじゃ、片方しか送られないのでは?」 その通りです。 なので、送信ボタンをJavaScriptで制御して、 プログラム内で、両方のFORM構成物をまとめて送り出せばOK 「だったら、JavaScriptでリセットする項目だけを消すほうが楽なのでは?」 これも、その通りです。 つまりやり方は、たくさんあり、どれが正しいとも言えないというのが、 回答です。 ですが、上に書いた通り、簡単なスクリプトを混ぜることで、 どのようにもできるというのが今回の回答となります。

nkmyr
質問者

お礼

ありがとうございます。 PHPではなく、JavaScriptでしたか。

関連するQ&A

  • 【PHP】もし、「リセット」ボタン押されたらについて質問

      フォームの所の<input name="Reset" type="reset" value="リセット">で ボタン(リセット)が押されたらの判定なんですが、次ぎの様にやってみましたが どうも、ボタン(リセット)が押されたらの判定が対応されていません。 <?php if($_REQUEST["Reset"]!= ""){ $body = "";$body2 = ""; } ?> 「もし、ボタン(リセット)が押されたら…」の処理がしたいのですが どうしたら良いのでしょうか?教えて下さい。    

    • ベストアンサー
    • PHP
  • INPUT(TEXT)フォームのリセット

     テキストのフォームをリセットできない状況で,どうすればよいかご指導いただきたく投稿しました。HTMLファイルから検索ワード"SerchWord"を再検索画面にも表示させるために"GET"で送り,$_GETで受け取るという形にしています。  ちなみに,今回の命令ではタイプをボタンにして,onClickで場所を指定してリセット命令をかけていますが,type='reset'でも,onClick='thisform.reset()'でも,テキストボックス内の文字は消えませんでした。  以下,その部分のプログラムです。 …… if($_GET["SerchWord"] == null || (strcmp($_GET["SerchWord"] , "") == 0)) { echo("<input size='60' type='text' name='SerchWord' value='' />"); } else { echo("<input size='60' type='text' name='SerchWord' value='" . $_GET["SerchWord"] ."' /> "); } echo("<INPUT type='submit' value='検索'><BR>"); echo("<INPUT type='button' value='リセット' onClick='document.Kensaku.SerchWord.reset()'><BR>"); ……  もしかすると悩むレベルではないかもしれませんが,自分にとって簡単なようで,ものすごく悩んでいます。  どなたかご指導いただければ・・・。よろしくおねがいします。

    • ベストアンサー
    • PHP
  • ”送信ボタン” ”クリアボタン” について

    困ってます。 ”送信 クリアボタン” <input type="submit" value="送信" name="B1"><input type="reset" value="リセット" name="B2"> これを2つの画像にした場合、送信アイコン、クリアアイコンにはどう記述すればOKでしょうか? 困ってま~~~~す。

    • ベストアンサー
    • CGI
  • フォームへの前回入力値をクリアーする方法は?

    以下のコードでフォームへの前回入力値を保持しています。 送信前は"RESET"ボタンで入力値をクリアーできますが、送信後は入力値をクリアーできません。(RESETボタンをクリックしても送信済$_POSTが表示されます)おそらくブラウザのキャッシュで$_POSTの値が保持されているためと思われますが、何らかのボタンクリックでこれらの$_POST値をクリアする方法をご存知に方、是非ご教授ください。 <?php $yyyy=$_POST[Y]; $mm=$_POST[M]; $dd=$_POST[D]; ?> <FORM action="<?=$_SERVER[PHP_SELF]; ?>" method="post" > <P>YYYY<INPUT size="10" type="text" name="Y" value="<?= $yyyy;?>"></P> <P>MM<INPUT size="10" type="text" name="M" value="<?= $mm;?>"></P> <P>DD<INPUT size="10" type="text" name="D" value="<?= $dd;?>"></P> <INPUT type="submit" name="submit" value="送信"> <INPUT type="reset" name="reset" value="reset"> </FORM>

    • ベストアンサー
    • PHP
  • リセットボタンでクリアできない(初期の状態に戻らない)のですが・・・

    宜しくお願いします。 フォームの入力チェックで、「ある項目(ラジオボタン)を選択した場合、次のテキストボックスを入力不可にする」という動きをjavascriptでさせています。 しかし、フォームのリセットボタンをクリックした際に、選択したラジオボタンはクリアできるのですが、テキストボックスの状態をクリアすることが出来ません。 ちなみに、動きの詳細は以下の通りです。 1.ラジオボタン「ケースA」を選択すると… 2.テキストボックスが入力不可となり、テキストボックスの背景色がグレーになる 3.「ケースB」「ケースC」を選択すると入力可でテキストボックス背景色は赤になる 4.いずれかを選択した状態でリセットボタンをクリックすると… 5.ラジオボタンはリセットされるが、背景色は残ったまま 6.リセットボタンを再度クリックすると、テキストボックスは全てがクリアされた状態(入力可・背景色白)に戻る このような感じです。 現在のソースは以下の通りですが、どのようにしたらよいでしょうか? (javascriptは得手では無いので、本来ならもっと簡略できるのかもしれませんが、ご了承ください。m(__)m) [JAVASCRIPTソース] function DisAble() {  if(document.input.case[0].checked == true ) {   document.input.text1.disabled = true;   document.input.text1.style.backgroundColor='#cccccc';   return false;  } else if ((document.input.case[1].checked == true ) || (document.input.case[2].checked == true )){   document.input.text1.disabled = false;   document.input.text1.style.backgroundColor='#ff0000';   return false;  } else { // リセットボタンを2回クリックするとようやく以下の設定になる。   document.input.text1.disabled = false;   document.input.text1.style.backgroundColor='#ffffff';   return false;  } } [HTMLソース] <body>  <form name="form1">  <!-- ラジオボタン -->   <input type="radio" name="case" value="A" onClick="DisAble()">ケースA(入力不可)   <input type="radio" name="case" value="B" onClick="DisAble()">ケースB(入力可)   <input type="radio" name="case" value="C" onClick="DisAble()">ケースC(入力可)      <!-- テキストボックス -->   <input type="text" name="text1">   <!-- 送信・リセットボタン -->   <input type="submit" value="送信">   <input type="reset" value="リセット" onClick="DisAble()">  </form> </body> 以上です。分かりづらい説明で申し訳ございませんが、どなたか、どうぞお知恵をお願いいたします。

  • PHPのsubmitボタンが複数ある場合

    PHPのsubmitボタンが複数ある場合 PHPにて会計システムを開発しているのですが、計算ボタンと、更新してDBに追加するためのボタンとが混在している場合、 $_POST等で押されたボタンの処理を分けることは可能なのでしょうか?下の例は、 name="calculation"が押された場合は、val1とval2の値を計算し、totalへ値を入れます。 name="update"が押された場合は、それぞれのフォームの値をDBに更新をかけます。 <?php <form action="****.php" method="POST"> <input type="text" name="val1" value="20"/> <input type="text" name="val2" value="30"/> <input type="text" name="total" value="50"/> <input type="submit" name="calculation"/> <input type="submit" name="update"/> </form> ?> お分かりになる方、ご教授お願いいたします。

    • 締切済み
    • PHP
  • ボタンをクリックで新しいウインドウを開くには?

    ボタンをクリックで新しいウインドウを開くには? Googleのボタン「Google」、「Homepage」を押すと、「新しいウインドウ」を開くにはどこを書き加えれば、よいのでしょうか?いろいろ試しましたが、うまくいきません。よろしくおねがいします。。 <FORM method="GET" action="http://www.google.co.jp/search"> <INPUT maxlength="300" size="21" name="q"> <INPUT type="submit" value="Google" name="btnG" style="font-weight: bold" > <INPUT type="hidden" name="lr1" valuelang-ja checked value="1"> <INPUT type="submit" value="Homepage" name="btnI" style="font-weight: bold" > </FORM>

    • ベストアンサー
    • HTML
  • ボタンクリックで新しいウィンドゥを開けたいです。

    どなたかお知恵をお貸しください。 フォームボタンにてボタンクリックで新しいウィンドゥにて表示させたいのですが やり方が分かりません。 (1)画像をクリック時に買い物カゴに自動的に移動し該当商品がすでに選択されるようにしたい。 (2)その画像をクリック時に買い物カゴのページに移動するが、その際新しいウインドゥにて表したい。 ソースは下記のとおりです。 <form action="http://www.************.php"method="get" > <input type="hidden" name="mode" value="cart" /> <input type="hidden" name="product_id" value="7" /> <input type="hidden" name="product_class_id" value="7" /> <input type="hidden" name="quantity" value="1" /> <INPUT type="image" SRC="../img/**********.png" alt="*********のご購入はこちらから" border="0" /> </form> 上記の際、windowをopenする際どのようなタグにすればよろしいでしょうか。 お手数おかけしますがよろしくお願いします。

  • フォームでのリセットを使う方法

    PHP初心者です。宜しくお願いします。 フォームで値を入力後、チェック画面に行き修正で最初のページに戻る場合、 変数で値を受け渡しています。 <input type=text name="conpany" value="<?=$conpany?>"> この状態では、リセットボタンが使えませんが 使えるようにする方法はあるでしょうか?

    • 締切済み
    • PHP
  • リセットさせるにはどうしたらいいでしょうか?

    下記のような配列のフォームでボタンを押したらテキストフォールドの値を空にしたいのですがどのように記述したらいいのでしょうか? ご教授宜しくお願いします。 <form name="myform">  <input type="text" name="no[100]" value="abc">  <input type="text" name="no[102]" value="der">  <input type="text" name="no[105]" value="ghi">            .            .           動的に増える </form> ※ document.myform.elements["no[100]"].value = ""; みたいに書けば個別には空にすることは出来たのですが。 elementsの順番で空にすることがどうしてもうまくいきません。 document.myform.elements[0][0].value = "";みたいに。 document.myForm.elements['no[]'].lengthで個数を取得して順番に空にするってことがしたいのですが、<input type="text" name="no[]" value="abc">だったらうまくいくのかもしれないですけど、no[値]があるとどうもうまくいきません。 宜しくお願いします。

専門家に質問してみよう