Приветствие Доброе утро
Я создал страницу, такую как "Корзина покупок", в которой я использую много выпадающего поля [примеры 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 → <-
Попробуй это:
<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>
onchange = "this.form.submit()" заставляет страницу отправлять и обновлять каждый раз при изменении выбранного элемента.
Это означает, что вы либо используете сеанс для запоминания значений, либо можете удалить "onchange =" this.form.submit() "и поместить кнопку отправки в форму:
<input type="submit" value="Submit">
Если вы пытаетесь не обновлять страницу, вам нужно использовать ajax для вызова веб-службы, которая вернет JSON.
Рабочий код изменен Сверху Код Дуйкбота.
Просто вставил мой 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>
Вместо опции 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
.
1) у вас отсутствует оператор if в вашем <option>
чтобы установить selected="selected"
для каждой из ваших строк:
<option value="1" <?php if($_REQUEST['month'] == 1){echo 'selected="selected"';}?>>1</option>
вероятно, лучше всего сделать это в цикле.
2) Однако я не вижу "второго раскрывающегося окна", в приведенном выше примере - у вас есть обработчик событий, который отправляет форму (ака обновляет страницу) после ее изменения.
selected