[PHP-users 7493] Re: フォーム関連の質問2

Moriyoshi Koizumi php-users@php.gr.jp
Thu, 16 May 2002 12:54:58 +0900


小泉@町田です。

はずしていたらすいません。
そういうときは、私は次のようにしています。

----------------
<?php
  if( isset( $_POST['doSubmit'] ) ) {
     $act = 'submit';
  } elseif( isset( $_POST['doDelete'] ) ) {
     $act = 'delete';
  } else {
     $act = $_POST['defaultact'];
  }

  switch( $act ) {
    case 'submit':
       print "submit";
       /* ---- submit が押されたときの処理 ---- */
       break;

    case 'delete':
       print "delete";
       /* ---- delete が押されたときの処理 ---- */
       break;

    default:
       /* ---- そのほかの場合の処理 ---- */
       break;
  }
?>
<FORM method="POST">
  <INPUT type="text" name="name">
  <INPUT type="hidden" name="defaultact" value="submit">
  <INPUT type="submit" name="doSubmit" value="送信">
  <INPUT type="submit" name="doDelete" value="削除">
</FORM>
----------------
defaultact は、送信のときにボタンが押されなかった時に行う処理を示してます。
この場合、リターンキーで送信が行われれば、submit 処理を行います。

<INPUT type="hidden" name="defaultact" value="submit">
の箇所をはずせば、リターンキーの送信の時は
「そのほかの場合の処理」を行います。


では。

shojun kimura <k_shojun@yahoo.co.jp> wrote:

> 木村です。
> 
> フォームに関連した質問、二回目です。。
> 私が実際、やっているソースコードとは内容が
> すこし、違いますが、
> たとえば、以下のようなフォームがあるとして、
> 
> <form action="this.php" method="post">
> <input type="text" name="name" size=30>
> <input type="submit" name="submit" value="delete">
> <input type="submit" name="submit" value="submit">
> </form>
> 
> if($submit == "submit" && $name != "")
>      名前をデータベースにいれる処理
> elseif($submit == "delete")
>      何かの項目をデータベースから消す処理
> 
> ・・・のようにnameのところで、文字列をいれて、
> submitボタンを押せば、何かを送信する処理をする
> また、deleteボタンが押されれば、何かの削除処理をする
> といった処理をする時、各々のボタンが押された場合には、
> うまくそのボタンに関する処理ができますが、
> 
> もし、nameのところで、文字列を入れて、ボタンを押さないで
>> リターンキーを押した場合には、、deleteボタンを押してない
> のに、
> deleteの処理をしてしまいますが、何か対処法はあるんでしょ
> うか。
> 説明が悪かったり、何かほかにほしい情報があったら、
> 言ってください。
> よろしくお願いします。