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

После чего получил вывод совершенно всех блоков.
Как подобное можно исправить и где здесь кроется фатальная ошибка или как лучше
  • Вопрос задан
  • 87 просмотров
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
PQR
@PQR
Вы сравниваете супенрглобальную переменную $_POST с числом: if($_POST=1), тут несколько ошибок:
1) сравнение делается с помощью двойного знака равенства ==
2) сравнение $_POST с числом не имеет смысла, т.к. $_POST - это массив, а не число.

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

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

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽