電子書籍の厳選無料作品が豊富!

はじめまして。
PHP超初心者なのですが、
<form action="{SELF}#mf" method="post">
<TR>
<TD class="cel1">海外旅行の経験はありますか?<span>*</span></TD>
<TD class="cel2"><!--TRAVEL_ERROR--><INPUT type="radio" name="travel" value="無"/>無     
<INPUT type="radio" name="travel" value="有"/>有<br>国名<input name="travel1" type="text" value="{travel1}" class="ja" /></TD>
</TR>
</form>
の場合、
有を選択した場合、国名を記入するようにエラーを出したいのですが。
また、この有無の選択されてなかったら、エラーを出したいのですが。。。
教えてください。お願いします。

A 回答 (4件)

ああ、なるほど・・・読解力がなくて申し訳ないです



ではこんな感じで、自分自身にサブミットしてデータの整合性を
チェックし、問題がなければgood.phpにとばすというような
フローでどうでしょう?

<?PHP
do{
if($_POST['submit']=="") break;
if($_POST['travel']==""){ $errStr="選択してよ";break;}
$checked['travel'][$_POST['travel']]=" checked";
if($_POST['travel']=="有" AND $_POST['travel1']=="") {$errStr="国名かいてよ";break;}

//この後問題ないときの処理をかく・・・
}while(0);

header("Content-Type:text/html;charset=euc-jp");
print <<<eof
<html>
<head>
<style type="text/css">
#errMesg{
color:red;
}
</style>
<body>
<form action="{$_SERVER['PHP_SELF']}" method="post">
海外旅行の経験はありますか?<br>
<span id="errMesg">{$errStr}</span>
<INPUT type="radio" name="travel" value="無" id="travelno"{$checked['travel']['無']}/><label for="travelno">無</label>
<INPUT type="radio" name="travel" value="有" id="travelyes"{$checked['travel']['有']}/><label for="travelyes">有</label><br>
国名<input name="travel1" type="text" value="{$_POST['travel1']}" class="ja" />
<input type="submit" name="submit" value="GO!">
</form>
</body>
</html>
eof;
?>
    • good
    • 0
この回答へのお礼

ありがとうございます!
今から、やってみます!!!

お礼日時:2007/07/05 14:31

#3補足



>good.phpにとばす

処理ページにとばす
でした
    • good
    • 0
この回答へのお礼

有難うございました。(●^o^●)
できました!
感謝します。
ご連絡が遅くなってしまってすみません。
本当に有難うございました。

お礼日時:2007/07/08 02:52

前回の回答にも書いたとおり、そうなるとjavascriptの質問になるので


スレッド違いですね。変更依頼しときます。

やりかたとしては以下のような感じです。
普通ラジオボタンはユーザービリティのためにデフォルトきめとく
もんですけどね・・・。


<head>
<style type="text/css">
#errMesg{
color:red;
}
</style>
<script language="javascript">
function checkForm(f){
var errMesg=document.getElementById('errMesg');
var travel=f.travel;
var travelVal="";
var errFlg=true;
for(i in travel){
if(travel[i].checked){
errFlg=false;
travelVal=travel[i].value;
break;
}
}
if(errFlg){errMesg.innerHTML='選択してね';return false;}

if(travelVal=="有" && f.travel1.value==""){errMesg.innerHTML='国名いれてよ';return false;}
return true;
}
</script>
</head>
<body>
<form action="" method="post" onSubmit="return checkForm(this)">
海外旅行の経験はありますか?<br>
<span id="errMesg"></span>
<INPUT type="radio" name="travel" value="無"/ id="travelno"><label for="travelno">無</label>
<INPUT type="radio" name="travel" value="有"/ id="travelyes"><label for="travelyes">有</label><br>
国名<input name="travel1" type="text" value="" class="ja" />
<input type="submit" value="GO!">
</form>
</body>

この回答への補足

ご回答有難うございます。
私の言い方が悪かったですね。。。
>確認画面でやるならPHPでもできますと
言われてたのでできるんだと思ってました。
できれば、javascriptは、使いたくないのです。
携帯からもこのフォームでやりたいので
できれば、PHPで作って行きたいんです。
もう一度、PHPでのやり方を教えてください。
お忙しいとは、思いますが、よろしくお願いします。

補足日時:2007/07/04 20:40
    • good
    • 0

>有を選択した場合、国名を記入するようにエラーを出したいのですが。



タイミングがわかりません。
押した瞬間にエラーをだしたいなら、javascriptでやるしかありません。
確認画面でやるならPHPでもできます

>また、この有無の選択されてなかったら、エラーを出したいのですが。。。

これも受け取った側でエラーを出す方法と、サブミットボタンをおしたとき
に出す方法がわかれます(両方でチェックする方がよいのですが)

この回答への補足

すみません
サブミットボタンをおして確認画面で
エラーを出したいのです。
すみませんが、よろしくお願いします。

補足日時:2007/07/04 16:43
    • good
    • 0

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