0
<form method="POST"/>
FATHER<input type="radio" name="r" value="father">
MOTHER<input type="radio" name="r" value="mother ">
KID<input type="radio" name="r" value="kid ">
    <input type="submit" name="submit" value="Submit">
    </form>



<?php
if (isset($_POST['submit']) && $_POST['submit']=='Submit') {
if(!empty($_POST['r']) || !empty($_POST['r']))
    {
        $h=$_POST['r'];
    }else {
        $h='';
    }
if($h =="father" )  
   {
           echo "1";
   } else if($h =="mother" ) {
           echo "2";
   } else if($h =="kid" ) {
           echo "3";
   }
   }

ユーザーがラジオボタンのいずれかをクリックすると、父、母、子供に値を割り当てました。父親をクリックすると結果が表示されますが、母親と子供のボタンをクリックすると何も表示されません。誰でも私を助けてください。

4

5 に答える 5

3

この行を変更します。

$h=$_POST['r'];

に:

$h=trim($_POST['r']); #this to trim off white spaces you have accidently put on values of radio buttons.
于 2013-09-18T08:17:40.157 に答える
0

問題は、あなたの HTML: value-tags for kid と Motherの末尾にスペースがあることです: しかし、送信されたものを string /末尾value="kid "にスペースなしで比較すると、失敗します。POSTmotherkid

値タグの末尾のスペースを削除します。スクリプトを機能させる他の方法は、比較する文字列にスペースを追加するか、比較するtrim前に - 関数を使用することです。trim文字列のすべてのヘッダー/末尾スペースを削除します。

于 2013-09-18T08:21:05.737 に答える
0

問題は、母と子の後にスペース文字を入れることです。"mother" の代わりに "mother" を使用すると機能します。そして、なぜあなたが同じ条件を繰り返したのか理解できませんでした

if(!empty($_POST['r']) || !empty($_POST['r']))

これらの種類のコントロールに switch case を使用することもできます。これにより、コードがより整理されます。ここで簡単な例と情報を見つけることができます: http://php.net/manual/en/control-structures.switch.php

于 2013-09-18T08:21:06.543 に答える
0

「母」と「子供」に空白があります

于 2013-09-18T08:19:33.170 に答える
0

母と父の値にスペースがあります。「母」 != 「母」と「父」 != 「父」

スペースを削除すると、コードが機能します。

于 2013-09-18T08:20:15.663 に答える