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>

有关更多信息,这里是屏幕截图--> 点击这里<--

4

5 回答 5

1

onchange="this.form.submit()" 每次更改所选项目时都会导致页面提交和刷新。

这意味着,您可以使用会话来记住这些值,或者您可以删除“onchange="this.form.submit()"并在表单中放置一个提交按钮:

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

如果您尝试不刷新页面,则需要使用 ajax 调用将返回 JSON 的 Web 服务。

于 2013-09-24T06:36:15.547 回答
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>
于 2013-09-24T06:40:02.767 回答
0

从上面的 Duikboot 代码修改的工作代码。

刚刚在表单上方插入了我的 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>
于 2013-09-24T07:30:40.277 回答
0

代替选择使用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条件下更新请求参数。

于 2013-09-24T06:38:04.150 回答
0

1)您在<option>要为每一行设置的 if 语句中缺少一条语句,请selected="selected"执行以下操作:

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

可能最好循环执行。

2)但是,在上面的示例中,我没有看到“第二个下拉框”-您有一个事件处理程序,它在更改后提交表单(也就是刷新页面)。

于 2013-09-24T06:36:44.300 回答