Задать вопрос
@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;}?>

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

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

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

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

Похожие вопросы