2013-12-09 27 views
1

我想弄清楚为什么当我提交这个表单过滤器时,我的if/else if语句不起作用。的print_r($后);返回正确的过滤器值,但是$ printmain只显示'rehab',不管选择了哪个过滤器选项 - 这很奇怪,因为$ post变量明显在变化。所以我不明白为什么它不通过if/else if语句?如果/ else if语句不适用于PHP窗体过滤器

if(isset($_POST['filter'])) { 

    $post = $_POST['filter']; 

     print_r($post); 

     if ($post = 'teamrehab') {$printmain = 'rehab';} 
     else if ($post = 'heights') {$printmain = 'heights';} 
     else if ($post = '1225') {$printmain = '1225';} 

    } 

<html> 
    <form method="post" id="filter" action="<?= $_SERVER['PHP_SELF'];?>"> 
    <select name="filter" onchange="document.getElementById('filter').submit();"> 
    <option value="choose">Choose Client</option> 
    <option value="teamrehab">teamrehab</option> 
    <option value="heights">heights</option> 
    <option value="1225">1225 Old Town</option> 
    </select> 
    </form> 

<?php if(!empty($_SESSION['username'])){ echo $printmain;} 
else echo "Please login with your Twitter account.";?> 


</html> 
+1

你比较运算'= '是分配一个不比较'=='的值 – hammus

回答

3

您在if语句中使用的是=而不是==

变化如下:

if ($post = 'teamrehab') {$printmain = 'rehab';} 
     else if ($post = 'heights') {$printmain = 'heights';} 
     else if ($post = '1225') {$printmain = '1225';} 

到:

if ($post == 'teamrehab') {$printmain = 'rehab';} 
     else if ($post == 'heights') {$printmain = 'heights';} 
     else if ($post == '1225') {$printmain = '1225';} 

你需要知道这是=之间的差异的assignment operator==这是一个comparison operator