2013-06-26 54 views
0

的另一套我要实现的一种形式,其中当选择了无线电-A,它会显示另一组单选按钮。单选按钮来显示表

我已经做形式

<div id="numberofpax"> 
    <p><input type="radio" id="radio1" name="ToggleDivs" onclick="Toggle('Div2-selfdrive');" value="2" class="2paxcar"> 
    <label for="radio1"><img src="images/form/2pax.png"></label></p> 

    <p><input type="radio" id="radio2" name="ToggleDivs" onclick="Toggle('Div3-selfdrive');" value="3" class="3paxcar" checked> 
    <label for="radio2"><img src="images/form/3pax.png"></label></p> 

    <p><input type="radio" id="radio3" name="ToggleDivs" onclick="Toggle('Div4-selfdrive');" value="4" class="4paxcar"> 
    <label for="radio3"><img src="images/form/4pax.png"></label> </p> 

    <p><input type="radio" id="radio4" name="ToggleDivs" onclick="Toggle('Div5-selfdrive');" value="5" class="5paxcar"> 
    <label for="radio4"><img src="images/form/5pax.png"></label></p> 
</div> 

<?php 
if(isset($_POST['ToggleDivs'])) 
{ 
    if($_POST['ToggleDivs'] = '2') 
    { 
     echo "2 PAX"; 
    } 
    elseif($_POST['ToggleDivs'] = '3') 
    { 
     echo "3 PAX"; 
    } 
    elseif($_POST['ToggleDivs'] = '4') 
    { 
     echo "4 PAX"; 
    } 
    else 
    { 
     echo "5 PAX"; 
    } 
} 
?> 

我相信这是IF ELSE语句问题?但不知何故,我不能让它工作?


我想我应该更具体地说明我想达到的目标。

[radiobutton-pax1][radiobutton-pax2][radiobutton-pax3][radiobutton-pax4] 

[radiobutton-hotel1][radiobutton-hotel2] 

[radiobutton-car1] [radiobutton-car2] [radiobutton-car3] [radiobutton-car4]  

所以在默认情况下,“单选按钮,PAX1” &“单选按钮,酒店1” &“单选按钮-CAR 1”在默认情况下,我已经实现选择。

当用户选择“单选按钮,PAX1”,“单选按钮-CAR 1至4”将会出现。 当用户选择'radiobutton-pax2'时,会出现'radiobutton-car1到4'。 当用户选择'radiobutton-pax3'时,'radiobutton-car2 to 3'会出现。 当用户选择'radiobutton-pax4'时,'radiobutton-car3 to 4'会出现。

我也做到这一点。问题是检查默认的单选按钮是每个选择中最低的。例如;

如果选择单选按钮-PAX1,默认选择将被如果选择单选按钮-PAX2 RADIOBUTTON-CAR1 ,如果选择了单选按钮-PAX3默认选择将被RADIOBUTTON-CAR1 ,默认选择将是radiobutton- car2 如果选择了radiobutton-pax4,默认选择将是radiobutton-car3

这就是我卡住的地方。

+0

如果您试图通过上述代码实现您所说的话,那么它将无法工作。 首先单选按钮不会触发你的表单提交,因为你的值不会被发布。所有的 第二,你的比较操作设置为你的PHP代码赋值运算符。 可以请你发布到你的表单一起代码,使我们可以用这个帮助你。 – dishwasherWithProgrammingSkill

回答

-1

您是否尝试过使用==

if($_POST['ToggleDivs'] == '2'){ 
+0

我试过使用这个,但根本没有显示任何结果 – smartans

+0

@smartans我认为你的php代码是在不同的页面上,对吗?另外请确保检查'isset($ _ POST ['ToggleDivs'])'是否正在返回一个值。 – JunM

0

在PHP中,=运算符是为变量赋值。

您正在寻找比较==运算符,它测试expression1是否等于expression2,并将其评估为true或false。

请参阅:

<?php 
     if(isset($_POST['ToggleDivs'])){ 
      if($_POST['ToggleDivs'] == '2'){ 
      echo "2 PAX"; 
      } 
      elseif($_POST['ToggleDivs'] == '3'){ 
      echo "3 PAX"; 
      } 
      elseif($_POST['ToggleDivs'] == '4'){ 
      echo "4 PAX"; 
      } 
      else{ 
      echo "5 PAX"; 
      } 
      } 
     ?> 

http://php.net/manual/en/language.operators.comparison.php

或者虽然,你可能会发现一个switch语句比,如果是一个漫长的一套都更有益。例如:

<?php 
    switch($_POST['ToggleDivs']){ 
    case '2': 
     echo "2 PAX"; 
     break; 
    case '3': 
     echo "3 PAX"; 
     break; 
    case '4': 
     echo "4 PAX"; 
     break; 
    default: 
     echo 'error'; 
     break; 
    } 
+0

它显示默认的错误。即使我更改为2人左右,它仍然会显示默认值 – smartans

+0

,这是因为您的POST数组为空。它将启动switch语句并且与任何情况都不匹配,并最终在缺省部分中显示内容。 – dishwasherWithProgrammingSkill