【無料配信♪】Renta !全タテコミ作品第1話

PHPのプログラムを作成しています。
動きとしては、
1.ユーザに値を入力させる
2.ユーザが入力した値をエラーチェックする
3.エラーチェック結果、もしエラーがなければ次の画面へ遷移し、エラーがあればメッセージを画面表示
という動きです。
(教えて!gooのような動きをさせたいのですが・・・)

2まではできていますが、3で困っています。
エラーがあればメッセージを画面表示するのはできましたが、エラーがない場合に次の画面へ移動する、というのはどのように実装すれば可能でしょう。

現在のソースは以下のような流れです。

----------------------------------------------------------

<?php

 $getChar = $_POST["char"]

/*--- エラーチェック ---*/
 if( isset( $_POST["send"] ) ) {
  if( strcmp( $getChar, "" ) == 0 ) { // 空の場合はエラー
  $strErr = "エラーメッセージ";
  }
  echo $strErr;  // ★
 }
?>

<form method="POST" action="#" name="form">
 名前:<input type="text" name="char">
 <input type="submit" name="send" value=\"送信\">
</form>

----------------------------------------------------------

現在は上のような流れで処理を行っています。
今はエラーがある場合はエラーメッセージを表示(★部)し、ない場合はエラーメッセージを表示せず、画面遷移も行いません。
本当はエラーがない場合は次の画面へ遷移をさせたいのですが、どのように指定をさせたら良いのでしょうか。
すみませんが、ご回答よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

画面の遷移ではなくて、そのページにOKの時の表示をすればいいのでは。



if( strcmp( $getChar, "" ) == 0 ) { // 空の場合はエラー
$strErr = "エラーメッセージ";
echo $strErr;
}

else{
// OKの時の表示
}
    • good
    • 0
この回答へのお礼

この方法でうまくいきそうです。
ありがとうございました。

お礼日時:2009/04/26 20:57

next_view();




function next_view((){
 ・・・・
 画面表示のhtmlとか
 ・・・・
}

ではどうでしょうか。
    • good
    • 0
この回答へのお礼

その方法は思ってもみませんでした。
ありがとうございます。何とかできそうです。

お礼日時:2009/04/26 20:55

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエラーを元の画面に表示させるには

http://income-seed.ck0.net/1000yen/demand.htm

上のページでは、テキストボックスに値を入力しなかった場合、別のエラー画面などに遷移せずに元のページにエラー表示がされます。

これと同じ仕組みを実現したいのですが、その方法論が思いつきませんので、皆様のお知恵をお借りしたいと思っています。よろしくお願いします。
具体的にコードで示して頂けたりすると非常に助かります。

Aベストアンサー

返信が遅くなりすみません
簡易版ですがサンプルPGを作成しました。NULLチェックと未入力チェックあと簡易版のメアドチェックです。
使用方法等サンプルソースは下記です。
<?php
  //宣言
  $sample = new CHK_SAMPLE();
  //メソッド実行
  $error = $sample->CHK_NULL($_POST['name'],$_POST['mail']);
?>
<html>
<head><title>サンプル</title></head>
<body>
 <form action="sample.php" method="POST">
  <font color="red">
 <?php
  if($error!="OK")
   print $error;
  }
 ?>
  </font><br>
  <input type="text" name="name">
  <input type="text" name="mail">
 <?php
  if($error!="OK"){//エラーがあるとき
   print "<input type=\"submit\" name=\"送信\">";
   print "<input type=\"reset\" name=\"リセット\">";
  }else{
   print "<input type=\"submit\" name=\"送信\">";
  }
 ?>
 </form>
</body>
</html>
//ここからクラス
<?php
class CHK_SAMPLE{
  private $ERROR_MSG1 = "名前とメールアドレスが未入力です。";
  private $ERROR_MSG2 = "名前が未入力です。";
  private $ERROR_MSG3 = "メールアドレスが未入力です。";
  private $ERROR_MSG4 = "メールアドレスが間違っています。";
  private $KEKKA = "OK";//TRUEの場合の戻り値
  
  //NULL・空白チェック・メアドチェック
  /*----------------------------------------
    引数1:名前
    引数2:メールアドレス

    戻り値:「OK」メッセージ or エラーメッセージ
  ----------------------------------------*/
  public function CHK_NULL($CNAME,$CMAIL){
    if($CNAME!=NULL){
      if($CMAIL!=NULL){
        //名前・メールアドレスがNULLでない
        if($CNAME!=""){
          if($CMAIL!=""){
            //名前・メールアドレスが空白でない
            //メアドチェックも行う
            if($this->CHK_MAIL($CMAIL)=="OK"){
              return $this->KEKKA;
            }else{
              return $this->CHK_MAIL($CMAIL);
            }
          }else{
            return $this->ERROR_MSG3;
          }
        }else{
          //メールアドレスも空白
          if($CMAIL!=""){
            return $this->ERROR_MSG2;
          }else{
            return $this->ERROR_MSG1;
          }
        }
      }else{
        return $this->ERROR_MSG3;
      }
    }else{
      //メールアドレスもNULL
      if($CMAIL!=NULL){
        return $this->ERROR_MSG2;
      }else{
        return $this->ERROR_MSG1;
      }
    }
  }
  //メアドチェック(簡易)
  /*----------------------------------------
    引数1:メールアドレス

    戻り値:「OK」メッセージ or エラーメッセージ

    文字列「*****@******」に一致するか
    ※「*」は任意の文字列
  ----------------------------------------*/
  public function CHK_MAIL($CMAIL){
    if(preg_match("/^[^.]+\@[^.]+$/i", $CMAIL)){
      return $this->KEKKA;
    }else{
      return $this->ERROR_MSG4;
    }
  }
}
?>

返信が遅くなりすみません
簡易版ですがサンプルPGを作成しました。NULLチェックと未入力チェックあと簡易版のメアドチェックです。
使用方法等サンプルソースは下記です。
<?php
  //宣言
  $sample = new CHK_SAMPLE();
  //メソッド実行
  $error = $sample->CHK_NULL($_POST['name'],$_POST['mail']);
?>
<html>
<head><title>サンプル</title></head>
<body>
 <form action="sample.php" method="POST">
  <font color="red">
 <?php
  if($error!="OK")
   print $error;
...続きを読む

QFORMで送信ボタンと戻るボタンを2つつけてそれぞれ遷移先を変えたい

  
以下のような画面を作りたいのですが↓

--------------------------------------------------------------------------------
● a.php (ユーザ情報入力画面) ※フォームに入力する画面
 
 <FORM method="POST" action="b.php">
  <INPUT type="text" name="mail">
  <INPUT type="submit" name="submit" value="確認">
 </FORM>

● b.php (ユーザ情報入力確認画面)※フォームに入力された値を表示する画面

 <FORM method="POST" action="c.php">
  <!-- ここには、フォームに入力された値を表示する -->
  <INPUT type="submit" name="submit" value="登録"> // c.php に遷移する
  <INPUT type="submit" name="submit" value="戻る"> // a.php に戻る
 </FORM>

● c.php (完了画面)
--------------------------------------------------------------------------------
b.php について質問なのですが、
b.phpにおいて、登録ボタンと戻るボタンを2つつけて、
それぞれ遷移先を変えたいのですが、どうすればいいんでしょうか・・・?
<FORM method="POST" action="c.php">と書いてしまうと、
戻るボタンを押しても戻らずに、c.phpに遷移してしまいますよね??
こういう場合ってJavaScriptとかで遷移先を指定するんですか・・?
もしそうでしたら、JavaScriptがよくわからないので
できればサンプルコード示していただけると助かります・・・。
  

  
以下のような画面を作りたいのですが↓

--------------------------------------------------------------------------------
● a.php (ユーザ情報入力画面) ※フォームに入力する画面
 
 <FORM method="POST" action="b.php">
  <INPUT type="text" name="mail">
  <INPUT type="submit" name="submit" value="確認">
 </FORM>

● b.php (ユーザ情報入力確認画面)※フォームに入力された値を表示する画面

 <FORM method="POST" action="c.php">
  <!-- ここには、フォームに入...続きを読む

Aベストアンサー

はじめまして。

<INPUT type="submit" name="submit" value="登録" onClick="form.action='c.php';return true">
<INPUT type="submit" name="submit" value="戻る" onClick="form.action='a.php';return true">

でいいと思います。(実際、このコードで使っています)
値を渡すには、FORM内にhiddenで、値を設定しておいて、methodをPOSTに設定しておけば、渡せます。

QリダイレクトでPOST

教えてください。

リダイレクトの際、POSTで次のページにデータを渡すことは可能でしょうか?

GETだと
header("Location: "a.php?no=".$no);
と、問題なくできるのですが、
できれば、パラメータを隠したいと思います。

以上ですが、よろしくお願いします。

Aベストアンサー

多分できないです。
それに、結局クライアント側に情報を送信しているのだから、POSTにしたところでパラメータを隠した事にはならないですし。
本当に隠すならサーバ側でセッション情報を引き継ぐような形にしないとダメでしょう。

AJAXのかたちにして、ページ遷移を見えなくするというのが手っ取り早いかも。

Qページ移動した場合の、フォームデータの保持

PHP初心者です。

私が作っているPHPのシステムで、ユーザーがフォームデータ入力途中に、他のページに移動すると、「戻る」ボタンなどですぐに戻ってきても、入力したフォームデータが消えてしまいます。

例えば、この「教えてgoo」の「新しい質問をする」のフォームはPHPで生成されていますが、

http://oshiete1.goo.ne.jp/oshiete_new.php3?c=256

途中でちょっと他のページに行っても、(すぐ戻れば?)入力したデータは保持されますよね。

こんなふうにしたいのですが、どうすればよいでしょうか?
「戻る」ボタンで戻ったときに、サーバーから毎回新しいXHTMLをロードしてくるので、入力データがクリアされてしまうのでしょうか?

フォーム入力⇒確認画面⇒「戻る」ボタンで戻るとフォームデータが保持されないということではなく、あくまでフォーム入力中に、ちょっと他のページに行って戻ってくるという設定です。

よろしくお願いします。

Aベストアンサー

原因はセッション関連にありそうですね。
session_cache_limiter()
というのは指定されていますか?
恐らく現状はnocache(ページ内容をキャッシュしない状態)になっているのだと思います。

もし
session_cache_limiter('nocache');
となっていれば、publicもしくはprivateへ変更してみて下さい。
ないようでしたら、session_start()の前に
session_cache_limiter('public');
session_cache_limiter('private');
のどちらかを記述してみて下さい。
publicだと、クライアントマシン、プロキシのどちらもキャッシュを保持しますが、
privateだとクライアントマシンのみキャッシュを保持します。
どちらが良いのかは使い方によると思いますし、
nocacheでないと困る時もありますから。

session_startを削除してしまって良いかどうかは、
他の部分の処理との関連が分からないので何とも言えないです。

一度試してみて下さい。

参考URL:http://jp.php.net/session_cache_limiter

原因はセッション関連にありそうですね。
session_cache_limiter()
というのは指定されていますか?
恐らく現状はnocache(ページ内容をキャッシュしない状態)になっているのだと思います。

もし
session_cache_limiter('nocache');
となっていれば、publicもしくはprivateへ変更してみて下さい。
ないようでしたら、session_start()の前に
session_cache_limiter('public');
session_cache_limiter('private');
のどちらかを記述してみて下さい。
publicだと、クライアントマシン、プロキシのどち...続きを読む

Qセッションを使わずに遷移先画面に変数の値を渡すには?

<input type="hidden" value="myID">みたいな隠しフォームで
行く先々の画面に値をPOSTで渡してきました。

他方、 header("Location: mypage.php")
のように画面を遷移させる場合、遷移先の画面に
$_POST["myID"]のように値を渡すことはできませんか?

この場合session_start();を使って、$_SESSION["myID"]のように値を
渡す(保持する)のが王道なのでしょうか?
セッションと聞くと何かとトラブルになりやすそうなイメージがあり、
できれば使いたくないのです。

具体的に説明しますと、前にこの掲示板で教えていただいた、次の例を使っています。
入力文字チェックをかけたいのでPHP_SELFで同じ画面を呼び出して、
問題なければmypage.phpにリダイレクトさせる枠組みですが、
header("Location: mypage.php");という風に遷移した場合は、
遷移先のmypage.phpでは、$_POST["myID"]はPOSTされてきませんよね
(値を受け取れませんよね)??

妙案あればご教示下さい。


<?php
if ($_POST["reg"] == "" ) $errFlg = true;
if (!$errFlg) {
    if (strlen($_POST["myName"]) > 30) {
      $errFlg = true;
      $errStr["myName"] = "30字以下";
    }
  $errMsg = "エラー!!";
}
if ($errFlg) {
?>
<html>
  <body>
    <form method="post" action="<?php $_SERVER["PHP_SELF"] ?>">
      氏名 <input type="text" name="myName" value="<?= $_POST["myName"] ?>"><?= $errStr["myName"] ?>
      <input type="hidden" name="myID" value="<?= $_POST["myID"] ?>">
    </form>
    <input type="submit" name="reg" value="登録">
  </body>
</html>
<?php
} else {
    $sql = "update mytable set myID = 'xxxx'";
    $rst = mysql_query($sql, $con);
    header("Location: mypage.php");
}
?>

<input type="hidden" value="myID">みたいな隠しフォームで
行く先々の画面に値をPOSTで渡してきました。

他方、 header("Location: mypage.php")
のように画面を遷移させる場合、遷移先の画面に
$_POST["myID"]のように値を渡すことはできませんか?

この場合session_start();を使って、$_SESSION["myID"]のように値を
渡す(保持する)のが王道なのでしょうか?
セッションと聞くと何かとトラブルになりやすそうなイメージがあり、
できれば使いたくないのです。

具体的に説明しますと、前にこ...続きを読む

Aベストアンサー

結局「sessionの真似事」を自前でするようなことになりそうです。

・ランダムなファイル名を作成して、そのファイルにアドレスを書き込む。
・GETでファイル名を渡す。
・ファイル名を元にそのファイルからアドレスを取り出す。
・ファイルを削除する

何らかのトラブルで残ってしまったファイルは「一定時間以上経過したファイルは定期的に削除」というGCの真似事までしないといけなくなりますけど。

hidden(POST)で持ち回るということからも「セキュリティ」はまったく考慮しなくていいシステムのようなので、そうであれば「復号可能な暗号化」という手もありかもしれません。



>セッションと聞くと何かとトラブルになりやすそうなイメージがあり、
>できれば使いたくないのです。

普通に使いますけどねぇ・・。

Qinputタグでphpを呼び出す際、ページ遷移せずに実行結果を呼び出す方法が分かりません

phpのプログラムで数点詰まってしまった所がございましたので、アドバイスいただける方がいらっしゃいましたら、よろしくお願いします。

【やりたいこと】
1. index.phpのactionというボタン(inputタグ)を押すと、action.phpの中身を実行したい(これは出来ています)。
2. その際、ブラウザのURLはaction.phpではなく、index.phpにしたい(これは出来ていません。index.phpにaction.phpの実行結果を読み込めばよいのかなと思いましたが、その方法が分かりませんでした)。
3. index.phpのactionというボタンを押すと表示される画面に、「戻る」ボタンを表示したい(これは出来ていません。action.php内に「戻る」ボタンを記述した所、action.phpを正常に実行した際は「戻る」ボタンが表示されましたが、異常時には「戻る」ボタンが表示されませんでした。なおindex.phpに最初にアクセスした際には「戻る」ボタンは表示させたくありません)。

【ソースコード】
※phpが動作するサーバの同一階層内に、下記のindex.php、action.phpをアップしていただければ、動作を確認していただけると思います。
★index.php
<html>
<head>
<title>action</title>
</head>
<body>
<form action="action.php" method="post" enctype="application/x-www-form-urlencoded">
<input type="submit" name="Submit" value="action" />
</form>
</body>
</html>

★action.php
<?php
phpinfo();
?>

どこか一箇所でもアドバイスいただけるようでしたら、アドバイスいただければと思います。
以上、よろしくお願いします。

phpのプログラムで数点詰まってしまった所がございましたので、アドバイスいただける方がいらっしゃいましたら、よろしくお願いします。

【やりたいこと】
1. index.phpのactionというボタン(inputタグ)を押すと、action.phpの中身を実行したい(これは出来ています)。
2. その際、ブラウザのURLはaction.phpではなく、index.phpにしたい(これは出来ていません。index.phpにaction.phpの実行結果を読み込めばよいのかなと思いましたが、その方法が分かりませんでした)。
3. index.phpのactionというボタンを...続きを読む

Aベストアンサー

>異常時には「戻る」ボタンが表示されませんでした。
この異常時というのがよくわかりませんが、、、。
POSTデータの内容で条件分岐させて、index.phpの中でaction.phpの処理をさせてしまえばいいだけです。

★index.php
<html>
<head>
<title>action</title>
</head>
<body>
<?php
if($_POST['Submit']){
phpinfo();
echo "<a href=\"".$_SERVER['PHP_SELF']."\">戻る </a>";
exit;
}
?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<input type="submit" name="Submit" value="action" >
</form>
</body>
</html>

QボタンをクリックでPHP文を実行

ボタンをクリックしたときのみPHP文を実行したいのですが・・・

<input type="button" onClink="<?php~?>">
でいけるかと思ったのですが、
ページ表示時に<?php~?>が実行されてしまい、うまくいきませんでした。

onClink="window.open(test.php)"
という方法以外でお願いします。

Aベストアンサー

AjaxはもともとJavaScriptの機能である非同期通信をつかったもので。Ajaxという言語があるわけではありません

Ajaxを利用するのであれば、JavaScriptのXMLHttpRequestを使って非同期通信できるような実装をしなくてはなりません
簡単にサンプルコードで書けるほど単純なものでもありません

一般的なサーバーサイドスクリプトの動作として、
ボタンを押す->サーバーへリクエストする->サーバーが処理する->クライアントに何かしらの結果を返す(出力する)です
つまり、PHP等のサーバーサイドスクリプトは、遷移させることが大前提で動作します

ですから、ボタンを押してその場でJavaScriptと同じようにPHPが動くなんてことはありえません。
ボタンを押したらサーバーにリクエストする という動作ならば可能です。

つまり
質問で言われているような
onClink="window.open(test.php)"

<form name="f1" action="test.php" method="post">
<input type="submit" name="submit" value="submit" />
</form>
等のような形になります

こういった一般的な方法だと いちいち画面が切り替わったようになってしまうのを嫌って Ajaxでコレと同じことを、画面を切り替えずに行っているだけに過ぎません

AjaxはもともとJavaScriptの機能である非同期通信をつかったもので。Ajaxという言語があるわけではありません

Ajaxを利用するのであれば、JavaScriptのXMLHttpRequestを使って非同期通信できるような実装をしなくてはなりません
簡単にサンプルコードで書けるほど単純なものでもありません

一般的なサーバーサイドスクリプトの動作として、
ボタンを押す->サーバーへリクエストする->サーバーが処理する->クライアントに何かしらの結果を返す(出力する)です
つまり、PHP等のサーバーサイドスクリプトは、...続きを読む

Q配列をPOSTで受けとる

タイトルのまんまですが
配列をformで送って
それをPOSTで受け取りたいのですが
うまくいきません

具体的に言うと
<?php
print"<form method=POST action=action.php>";

for($i=0; $i<$n; $i++){
   print"<input type=text name=foo[$i]>";
}
print"<input type=hidden name=n value=$n>";
print"<input type=submit value=go>";
print"<form>";
?>


///////////以下action.php//////////////////
<?php
$n = $_POST["n"];
for($j=0; $j<$n; $j++){
   $foo[$j] = $_POST["foo[$j]"];
   print"$foo[$j]";
}
?>


こんな感じのことがしたいのですが
うまくいきません
どうもPOSTされてないみたいでfoo[$j]はnullです
凡ミスな気がしなくもないんですが...プログラム初心者なんで↓↓
教えてください
よろしくお願いします

タイトルのまんまですが
配列をformで送って
それをPOSTで受け取りたいのですが
うまくいきません

具体的に言うと
<?php
print"<form method=POST action=action.php>";

for($i=0; $i<$n; $i++){
   print"<input type=text name=foo[$i]>";
}
print"<input type=hidden name=n value=$n>";
print"<input type=submit value=go>";
print"<form>";
?>


///////////以下action.php//////////////////
<?php
$n = $_POST["n"];
for($j=0; $j<$n; $j++){
   $foo[$j] = $_POST["foo[$j...続きを読む

Aベストアンサー

atsuGTさんこんにちは。


受け取り側は

$foo = $_POST["foo"];

とするだけで$fooに送信された配列が格納されます。


$_POST["foo[添え字]"] ではなく、
$_POST["foo"][添え字] となります。

Qアンケートフォームの未記入項目チェック

アンケートフォームを作る勉強をしています。
氏名やメールアドレスなどが未記入の場合にエラーとして登録できないようにするにはどうしたらいいでしょうか

PHPの勉強をはじめてまだ数日なので参考書片手にやっている状態なのですが
is_nullというのがあったので
<?php
if(is_null($_POST['name"])){
print("<p>ERROR:氏名が未記入です。<br>");
}else{
$result1=($_POST['t_fname']);
}
?>
こんな具合にやってみたのですがうまく動きませんでした
どのようにやったらいいかアドバイスお願いします。

Aベストアンサー

tabun0622さんはじめまして、papillon68と申します。

氏名やメールアドレスを入力する部分を
<input type="text"・・・>
で作成していると推測しての回答です。


◆text(テキスト)
submitが押されるとその時入力されている値が送信されます。
未入力の場合は空白です。("")

◆select、option(コンボボックス)
submitが押されるとその時選択中のvalueが送信されます。

◆checkbox(チェックボックス)
submitが押されるとチェックが入っていればvalueが送信され、チェックが入っていなければそのチェックボックス自体は送信されません。
$_POST['チェックボックスのname']が未定のような感じです。

◆radio(ラジオボタン)
submitが押されると選択されているラジオボタンのvalueが送信され、チェックが入っていなければそのラジオボタン自体は送信されません。

◆submit(サブミット)
押されたサブミットボタンのみが送信されます。



ですので、
> if(is_null($_POST['name"])){
の場合ですと

if($_POST['name'] == "") {

とすると未入力かどうかが判断できます。


チェックボックスやサブミットボタンの場合ですと

if(isset($_POST['name']))

とすると送信されたかどうかが判断されます。
この方法はよく使われているように思います。


例えば、以下のようにするとサブミットボタン(send)がおされなければ、登録処理は行われません。
--------------------------------------------------
<?php
 // sendが押されたかどうか
 if(isset($_POST['send'])) {
  // nameが未入力ではないか
  if($_POST['name'] == "") {
   print("<p>ERROR:氏名が未記入です。<br>");
  }else{
   $result1=($_POST['t_fname']);
  }
 }
?>
<form>
氏名:<input type="text" name="name">
<input type="submit" name="send">
</form>
--------------------------------------------------

tabun0622さんはじめまして、papillon68と申します。

氏名やメールアドレスを入力する部分を
<input type="text"・・・>
で作成していると推測しての回答です。


◆text(テキスト)
submitが押されるとその時入力されている値が送信されます。
未入力の場合は空白です。("")

◆select、option(コンボボックス)
submitが押されるとその時選択中のvalueが送信されます。

◆checkbox(チェックボックス)
submitが押されるとチェックが入っていればvalueが送信され、チェックが入っていなければそのチェ...続きを読む

Q検索時の選択内容を保持する方法

質問失礼致します。

PHPで
・テキスト
・ラジオボタン
・チェックボックス
が複数入り混じった検索システムを作っています。

なんとか形になって検索の形はできたのですが、
必要な項目を検索し結果画面に映った際に
入力したテキスト・ラジオ・チェックボックスの内容が初期化されてしまいます。


検索した結果、テキストの方はインプット時に
<input type="text" name="name" size="50" value="<?= $_POST['name'] ?>" >
とすることで、結果画面にある検索システムの入力内容は保持できたのですが、

・ラジオ および ・チェックボックス の内容の保持を
なんとかまとめて設定することはできないでしょうか?


検索はしましたが、初心者なこともあり検索ワードがいまいち的を得てないのか、
考えている答えになかなかたどり着けておりませんので、
この場を借りて質問の方させていただいた次第でございます。


ご存じの方いらっしゃいましたら、是非ともご教授お願い致します。

Aベストアンサー

HTMLとプログラム部分の切り分けをするためにはなるべく単純な構造がよいでしょう
私の場合こんな処理をしています。
(実際の運用の際にはデータチェックをしたりするのでもう少し複雑になりますが)

<?
//checkbox
if($_REQUEST["test_a"]=="1") $checked["test_a"]=" checked";
if($_REQUEST["test_b"]=="1") $checked["test_b"]=" checked";

//radio
if(isset($_REQUEST["test_c"])) $checked["test_c"][$_REQUEST["test_c"]]=" checked";

//select
if(isset($_REQUEST["test_d"])) $selected["test_d"][$_REQUEST["test_d"]]=" selected";

print <<<eof
<form>
<input type="checkbox" name="test_a" value="1"{$checked["test_a"]}>A
<input type="checkbox" name="test_b" value="1"{$checked["test_b"]}>B
<input type="radio" name="test_c" value="1"{$checked["test_c"][1]}>C-1
<input type="radio" name="test_c" value="2"{$checked["test_c"][2]}>C-2
<input type="radio" name="test_c" value="3"{$checked["test_c"][3]}>C-3
<select name="test_d">
<option value="">---</option>
<option value="1"{$selected["test_d"][1]}>D-1</option>
<option value="2"{$selected["test_d"][2]}>D-2</option>
<option value="3"{$selected["test_d"][3]}>D-3</option>
</select>
<input type="submit" value="go">
</form>
eof;
?>

HTMLとプログラム部分の切り分けをするためにはなるべく単純な構造がよいでしょう
私の場合こんな処理をしています。
(実際の運用の際にはデータチェックをしたりするのでもう少し複雑になりますが)

<?
//checkbox
if($_REQUEST["test_a"]=="1") $checked["test_a"]=" checked";
if($_REQUEST["test_b"]=="1") $checked["test_b"]=" checked";

//radio
if(isset($_REQUEST["test_c"])) $checked["test_c"][$_REQUEST["test_c"]]=" checked";

//select
if(isset($_REQUEST["test_d"])) $selected["test_d"][$_...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング