@gattsteroff

Как можно вывести отдельный блок в зависимости от выбранного наименования в выпадающем списке?

Есть страница, где есть, допустим на выбор 4 наименования в "селекте". В зависимости от выбранного наименования должен показываться определенный блок.
Написал следующий код:
<?php 
        $elegant = file_get_contents('./tarifs/elegant.php');
        $myRules = file_get_contents('./tarifs/myRules.php');
        $noDamage = file_get_contents('./tarifs/noDamage.php');
        $canAll = file_get_contents('./tarifs/canAll.php');
        $none = file_get_contents('./tarifs/none.php');
 
        $values=array("Выберите нужный вам тариф..","Элегантный","Несокрушимый","Можно все", "Свои правила");
        
        $number=count($values);
    ?>
    <form method="post">
        <select name="polling" class="hover">     
    <? for($i=0; $i<$number; $i++) echo "<option value=\"$i\"> $values[$i]</option>"; ?></select><br><br>
        <li><input type="submit" value="Показать" class="hover"/></li>
        </form>
 
 	<? if($_POST=1){
	 echo $elegant;
	}else{
	 if ($_POST=2){
	 echo $noDamage;
	}else{
	}if ($_POST=3){
	 echo $canAll;
	}else{if ($_POST=4){
	 echo $myRules;
	}else{if ($_POST=0){
	 echo $nones;
	}}}}
	?>

Где получается, что выбирая и нажимая на кнопку "Показать", ниже выводятся определенные блоки, в зависимости от выбранного наименования, где 0 - это "Выберите нужный вам тариф.." и при выборе его ничего не показывается и где последующие наименования имеют свое число.
Ниже расписано, что если "Пост" имеет значение 1, то выводится одно, иначе идет последующие вычисления.
Но все это не работало так, как я думал и вместо того, что бы выводить выбранный - он всегда выводил самый первый этап.
После попробовал прошлое вычисление заменить на данный код:
<? if($_POST=1){
	 echo $elegant;}?>
	<? if ($_POST=2){
	 echo $noDamage;}?>
	<? if ($_POST=3){
	 echo $canAll;}?>
	<? if ($_POST=4){
	 echo $myRules;}?>
	<? if ($_POST=0){
	 echo $none;}?>

После чего получил вывод совершенно всех блоков.
Как подобное можно исправить и где здесь кроется фатальная ошибка или как лучше
  • Вопрос задан
  • 71 просмотр
Пригласить эксперта
Ответы на вопрос 1
PQR
@PQR
Вы сравниваете супенрглобальную переменную $_POST с числом: if($_POST=1), тут несколько ошибок:
1) сравнение делается с помощью двойного знака равенства ==
2) сравнение $_POST с числом не имеет смысла, т.к. $_POST - это массив, а не число.

Нужно сравнивать так: if($_POST['polling ']==1)

3) В через if/else конструкций не верно расставлены скобки, там вся логика нарушена (хотя чисто случайно синтаксический всё оказалось верно)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы