2013-12-09 4 views
1

Я пытаюсь выяснить, почему, когда я отправляю этот фильтр формы, мои инструкции if if else не работают. print_r ($ пост); возвращает правильное значение фильтра, однако $ printmain показывает только «rehab» независимо от того, какой вариант фильтра выбран - что странно, потому что переменная $ post явно меняется. Так что я не могу понять, почему это не происходит через if if else?Если/else если инструкции не работают с фильтром формы 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 ($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

Смежные вопросы