【问题标题】:Multiple Drop down Not Working in HTML多个下拉菜单在 HTML 中不起作用
【发布时间】:2013-09-24 06:31:30
【问题描述】:

朋友们早安
我已经创建了一个类似购物车的页面,因为我使用了许多下拉字段 [例如单个页面中的 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>

更多信息请点击屏幕截图-->

【问题讨论】:

    标签: javascript php html


    【解决方案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>
    

    【讨论】:

    • 只有 '$i' 显示为输出。值不显示。 @duikboot
    • 哦,我可能用“引号”弄错了。你现在可以再测试一下吗?谢谢! (在这里它正在工作)。 i44.tinypic.com/dbnkvo.png
    • 没有,只有下拉框出现'$i'值@duikboot
    • 请将您的网页另存为 dropdown.php。
    • 哎呀只是犯了一个错误,我尝试了这个.. 一个下拉框可以正常工作,但是当我放置 2 - 3 个下拉框时它不起作用,只有一个值有效,另一个值刷新。 @Duikboot
    【解决方案2】:

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

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

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

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

    【讨论】:

    • 您的代码解决了第二个问题,但第一个下拉框的值自动更改为 0。 @马克
    • 只有在我使用 php 代码运行它时才下拉工作。@mark
    【解决方案3】:

    代替select use php code to create option的选项,它也会减少页面中的代码。

    <?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>';
        }
    }
    ?>
    

    对于每个选择框使用都可以使用上面的代码。但需要在if条件下更新请求参数$_REQUEST['month']。

    【讨论】:

      【解决方案4】:

      1) 您在 &lt;option&gt; 中缺少一个 if 语句来为您的每一行设置 selected="selected",请执行以下操作:

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

      最好循环执行。

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

      【讨论】:

      • 例如我刚刚发布了第一个 Drop down 但你可以在图片中看到真实的场景@Zack
      • @coolprarun,刚刚更新了我的答案,您使用的是 $_GET 而不是 $_POST,但是我使用 $_REQUEST 来匹配您的代码。如果您在循环中使用上述代码,它将检查每个“月”选项以查看它是否是选定的,如果是,则将其标记为selected
      【解决方案5】:

      从上面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>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-24
        • 2021-07-31
        • 1970-01-01
        • 1970-01-01
        • 2017-11-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多