2013-02-09 51 views
-2

这是我的PHP代码php if elseif然后呢?

我已经在代码部分的注释中提到的问题点

if(isset($_POST['submit'])) 
{ 
    if(isset($_POST['rdoption1'])) 
    { 
     $var1 = $_POST["rdoption1"]; 
    } 
    if(isset($_POST['rdoption2'])) 
    { 
     $var2 = $_POST["rdoption2"]; 
    } 
    if(!isset($_POST['rdoption1'])) 
    { 
     $message = "Please select Option1"; 
    } 
    elseif(!isset($_POST['rdoption2'])) 
    { 
     $message = "Please select Option2"; 
    } 
    elseif($_POST['rdoption2'] == "checkSetXY") 
    { 
     if($_POST["valXLocation"] == "") 
     { 
      $message = "You forget to enter X value."; 
     } 
     elseif($_POST["valYLocation"] == "") 
     { 
      $message = "You forget to enter Y value."; 
     } 
    } // till here all is good. I get all error messages if anything is left vacant or not clicked on radio button 
    elseif(empty($_POST['txtoption3'])) //this is not working //the issue is if i select rdoption1 any option and rdoption2 checkDefault next code logic work.. but next code logic does not work when i click on the radio of checkSetXY and enter x and y values.. It simply does not execute code further.. 
    { 
     $message = "Please enter your name."; 
    } 
       else 
    {    
     //insert into db 
       } 
     } 

这是HTML表单与PHP的回声 这里我得到的消息,他们应是但不当我选择checkSetXY

 <?php if(!empty($message)){ echo $message; } ?> 

     <form id="form1" name="form1" method="post" action="form1.php"> 

      Space portion: 
       <input type="radio" name="rdoption1" value="RJ"/>space 1 
       <input type="radio" name="rdoption1" value="SM" />space 2 


      Pixel Location 
       <div class="formText"> 
       <input type="radio" name="rdoption2" value="checkSetXY"/> Specify Location 
        X: <input type="text" id="locField" name="valXLocation"> 
        Y: <input type="text" id="locField" name="valYLocation"> 
       <input type="radio" name="rdoption2" value="checkDefault"/>Default 

       <input type="text" class="input" name="txtoption3"> 
       <input type="submit" name="submit" value="Submit"> 
      </form> 

现在我很困惑为什么不采取elseiftxtoption3

任何帮助?在此先感谢

+0

试着在这个IF/IF ELSE/ELSE序列上做一个图表,因为它可能有点头晕! – fedorqui 2013-02-09 12:50:23

+0

问题是如果我选择rdoption1任何选项和rdoption2 checkDefault下一个代码逻辑工作..但下一个代码逻辑不起作用,当我点击CheckSetXY的无线电并输入x和y值..它只是不会进一步执行代码。 。 – ashis 2013-02-09 13:01:42

回答

3

这将无法正常工作,因为它将始终设置。因此,使用empty();

elseif(empty($_POST['txtoption3'])) //this is not working 

说明

您正在发布形式input。当你发送它没有填充任何东西时,它只是发送这个值。 ""

空字符串不等于null未设置

另外,如Peter Szymkowski所述,请查看fiddle

+1

yep + example http://codepad.viper-7.com/k4jEjT – Peter 2013-02-09 12:51:57

+0

@PeterSzymkowski添加了您的参考。 :) – 2013-02-09 12:53:29

+0

@PeterSzymkowski问题是如果我选择rdoption1任何选项和rdoption2 checkDefault下一个代码逻辑工作..但下一个代码逻辑不起作用,当我点击checkSetXY的无线电并输入x和y值..它根本不进一步执行代码.. – ashis 2013-02-09 13:00:54

-1

那是别人的,如果($ _ POST [“rdoption2”] ==“checkSetXY”)

我的猜测,所以它不会进入那个别人

+0

问题是,如果我选择rdoption1任何选项和rdoption2 checkDefault下一代码逻辑工作..但下一步代码逻辑不起作用,当我点击checkSetXY的收音机,并输入x和y值..它只是不会进一步执行代码.. – ashis 2013-02-09 13:06:27

1

文本框的设置,如果是真的 他们是空的。您必须检查empty($_POST['txtoption3'])

+0

问题是如果我选择rdoption1任何选项和rdoption2 checkDefault下一代码逻辑工作..但当我点击checkSetXY的收音机并输入x和y值时,下一个代码逻辑不起作用。它只是不会进一步执行代码。 – ashis 2013-02-09 13:02:14

+1

当'empty'仍然返回时,文本字段也可以包含实际数据(数字0)真正。 – Arjan 2013-02-09 16:56:31