2013-02-09 54 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