2012-11-19 60 views
2

所以我有以下代碼:HTML中IF語句不能正常工作

<?php 
$users_id = $_POST['users_id']; 
    if ($users_id=="1"); 
    { 
    ?> 
     <td><select name="User"> 
     <option></option> 
     <option>John</option> 
     <option>Jack</option> 
     </select></td> 
<?php 
    } 
    if ($users_id!=="1"); 
    { 
    ?>  
     <td align="left"> <input type="text" name="User" /><br></td></tr> 
<?php 
    } 
    ?> 

我想只有一種形式來顯示(下拉菜單或輸入),但我總是讓他們兩個和 我可以」不知道我的if語句有什麼問題。 請幫忙! 謝謝你的時間和精力!

+1

爲什麼使用;在IF聲明的最後? PHP允許這個 – NoNaMe

+0

PHP(和許多其他受C語言影響的語言)確實在IF之後允許分號,並且它是bug的常見來源... – luiges90

回答

3

刪除你的代碼並粘貼此一個後目前有... 必將工作

<?php 
$user_id = (isset($_POST['users_id'])) ? $_POST['users_id'] : ''; 
if($user_id == 1){ 
?> 
<td><select name="User"> 
<option></option> 
<option>John</option> 
<option>Jack</option> 
</select></td> 
<?php 
} else { 
?> 
<td align="left"> <input type="text" name="User" /><br></td> 
<?php 
} 
?> 
</tr> 

發生在你的代碼所做 後場做了驗證, 拆除;從if條件, 使用的if-else而不是如果,如果, 放置</tr>所有處理後的,否則它會返回一個明顯的錯誤

2

if ($users_id!="1");

試試這個。

7

它看起來像你使用相同的運算符!==當你不應該,因爲我看到你在其他if聲明中使用等於==

而且,更重要的是,你在你的if條件後加上分號!這將在if條件之後創建一個空語句,之後的任何內容都將運行,而不管它是否滿足條件。

嘗試改變

if ($users_id!=="1"); 

if ($users_id!="1") 

if ($users_id=="1"); 

if ($users_id=="1") 
2

除去分號從如果線和改變第二如果-條件:

if ($users_id!="1") 

或使用以下語法:

if ($users_id=="1") { 
    // select 
} else { 
    // input 
} 
+0

是的,分號是問題!非常感謝你! – user1758545

2

兩個變化

  1. 刪除分號後,如果條件

    f ($users_id!="1")

  2. 變化!==來!=

0

請檢查你的代碼改變

if ($users_id!=="1"); 

if ($users_id!="1") 

也跌落如果();如果以(),並請閱讀If else

0

如果($ users_id == 「1」!); //正確─>如果(!$ users_id == 「1」)

<?php 
$users_id = $_POST['users_id']; 

    if ($users_id==1); 
    { 

    echo "<td><select name='User'> 
     <option></option> 
     <option>John</option> 
     <option>Jack</option> 
     </select></td>"; 

    } 
    if($users_id!=1) 
    { 

     echo "<td align='left'> <input type='text' name='User' /><br></td></tr>"; 

    } 
    ?>