多个下拉列表不能在HTML中工作

时间:2013-09-24 06:31:31

标签: javascript php html

好朋友,早上好 我创建了一个像购物车一样的页面,因为我使用了很多下拉字段[单页中的示例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>

有关详细信息,请参阅屏幕截图 - &gt; CLICK HERE&lt; -

5 个答案:

答案 0 :(得分:1)

每次更改所选项目时,

onchange =“this.form.submit()”都会导致页面提交和刷新。

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

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

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

答案 1 :(得分: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>

答案 2 :(得分:0)

1)您错过<option>中的if语句,为每条线路设置selected="selected",执行以下操作:

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

可能最好在循环中完成。

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

答案 3 :(得分: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

答案 4 :(得分:0)

修改工作代码 Duikboot 代码。

刚刚将我的PHP代码插入到Form.It上工作正常。

<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>