Несколько раскрывающихся не работает в HTML

0

Приветствие Доброе утро
Я создал страницу, такую как "Корзина покупок", в которой я использую много выпадающего поля [примеры 8 выпадающих списков на одной странице]. При выпадающем я могу добавить столько, сколько нужно, и количество должно быть увеличено на основе количества изменения с помощью PHP
У меня есть следующие проблемы во время его запуска.

1.Когда я нажимаю один снимок, значение автоматически изменяется на 0.

Вторая проблема решена

2.SOLVED

2. Если вы нажмете второй раскрывающийся список, страница обновится и первое значение будет удалено.

Вот код

<form action="" method="get" name="months">
<select id="selectId" onchange="this.form.submit()" name="month" >
 <option   value="0">0</option>
 <option value="1">1</option>
 <option  value="2">2</option>
 <option  value="3">3</option>
 <option  value="4">4</option>
 <option  value="5">5</option>
 <option  value="6">6</option>
 <option  value="7">7</option>
 <option  value="8">8</option>
 <option  value="9">9</option>
 <option  value="10">10</option>
 <option  value="11">11</option>
 <option  value="12">12</option>
 </select><br><br></form>
 <?php
$rs='5000';
$mul=$_REQUEST['month'];
$multiply= $rs*$mul;
?></td><td><?php echo "Rs.$multiply"; ?></td></tr> 

<form action="" method="get" name="months">
<select id="selectId" onchange="this.form.submit()" name="month1" >
 <option   value="0">0</option>
 <option value="1">1</option>
 <option  value="2">2</option>
 <option  value="3">3</option>
 <option  value="4">4</option>
 <option  value="5">5</option>
 <option  value="6">6</option>
 <option  value="7">7</option>
 <option  value="8">8</option>
 <option  value="9">9</option>
 <option  value="10">10</option>
 <option  value="11">11</option>
 <option  value="12">12</option>
 </select><br><br></form>
 <?php
$rs='1000';
$mul=$_REQUEST['month1'];
$multiply= $rs*$mul;
?></td><td><?php echo "Rs.$multiply"; ?></td></tr>

Для получения дополнительной информации см. Screen Shot → Изображение 174551 <-

Теги:

5 ответов

1
Лучший ответ

Попробуй это:

<html>
<head>
    <title>SO - Cart</title>
</head>
<body>
<form action="" method="get" name="months">
<select id="selectId" onchange="this.form.submit()" name="month" >
 <?php
for($i=0;$i<=12;$i++){
    if($i==$_REQUEST['month']) {
        echo '<option selected="selected"   value='.$i.'>'.$i.'</option>';
    }
    else{
        echo '<option   value="'.$i.'">'.$i.'</option>';
    }
}
?>
</select><br><br>
</form>
<?php
    $mul = 0;
    $rs='5000';
    $mul=$_GET['month'];
    $multiply= $rs*$mul;
?>
<?php echo "Rs ".$multiply; ?>
</body>
</html>
  • 0
    В качестве выходных данных отображается только $ i. Значения не отображаются. @duikboot
  • 0
    О, я допустил ошибку с "цитатами". Можете ли вы проверить снова сейчас? Спасибо! (Здесь это работает). i44.tinypic.com/dbnkvo.png
Показать ещё 5 комментариев
1

onchange = "this.form.submit()" заставляет страницу отправлять и обновлять каждый раз при изменении выбранного элемента.

Это означает, что вы либо используете сеанс для запоминания значений, либо можете удалить "onchange =" this.form.submit() "и поместить кнопку отправки в форму:

<input type="submit" value="Submit">

Если вы пытаетесь не обновлять страницу, вам нужно использовать ajax для вызова веб-службы, которая вернет JSON.

  • 0
    Ваш код решает вторую проблему, но значения первого раскрывающегося списка автоматически изменяются на 0. @Отметка
  • 0
    только выпадающая работа, пока я запускаю ее с кодом php, он не работает .. @mark
0

Рабочий код изменен Сверху Код Дуйкбота.

Просто вставил мой PHP-код выше формы. Он работает отлично.

<html>
<head>
<title>SO - Cart</title>
</head>
<body><?php
$mul = 0;
$rs='5000';
$mul=$_GET['month'];
$multiply1= $rs*$mul;
?>

<?php
$mul = 0;
$rs='2000';
$mul=$_GET['months'];
$multiply= $rs*$mul;
?>

<form action="" method="get" name="months">
<select id="selectId" onchange="this.form.submit()" name="month" >
 <?php
for($i=0;$i<=12;$i++){
if($i==$_REQUEST['month']) {
    echo '<option selected="selected"   value='.$i.'>'.$i.'</option>';
}
else{
    echo '<option   value="'.$i.'">'.$i.'</option>';
}
}
?>
</select>
<?php echo "Rs ".$multiply1; ?><br><br>
<select id="selectId" onchange="this.form.submit()"  name="months" >
 <?php
for($i=0;$i<=12;$i++){
if($i==$_REQUEST['months']) {
    echo '<option selected="selected"   value='.$i.'>'.$i.'</option>';
}
else{
    echo '<option   value="'.$i.'">'.$i.'</option>';
}
}
?>
</select>
<?php echo "Rs ".$multiply; ?>
<input type="submit" />
</form><br><br>
</body>
</html>
0

Вместо опции select используйте php-код для создания опции, он также уменьшит код на странице.

<?php
for($i=0;$i<=12;$i++){
    if($i==$_REQUEST['month']) {
        echo '<option selected="selected"   value="'.$i.'">"'.$i.'"</option>';
    }
    else{
        echo '<option   value="'.$i.'">"'.$i.'"</option>';
    }
}
?>

Для каждого окна выбора используйте код выше. но необходимо обновить параметр запроса $_REQUEST['month'] в if.

  • 0
    +1 за быстрый ответ Проблема была решена ..
0

1) у вас отсутствует оператор if в вашем <option> чтобы установить selected="selected" для каждой из ваших строк:

<option value="1" <?php if($_REQUEST['month'] == 1){echo 'selected="selected"';}?>>1</option>

вероятно, лучше всего сделать это в цикле.

2) Однако я не вижу "второго раскрывающегося окна", в приведенном выше примере - у вас есть обработчик событий, который отправляет форму (ака обновляет страницу) после ее изменения.

  • 0
    Например, я только что опубликовал первый выпадающий список, но вы можете увидеть реальный сценарий на картинке @Zack
  • 0
    @coolprarun, только что обновил мой ответ, вы используете $ _GET вместо $ _POST, однако я использовал $ _REQUEST, чтобы соответствовать вашему коду. Если вы используете вышеуказанный код в цикле, он будет проверять каждый параметр «месяц», чтобы увидеть, является ли он выбранным, если он помечает его как selected
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню