-2

我有第一个选择选项

  <form id="infform" method="post">
      <select id="infmenu" name ="infmenu" size="1" class="select"  >
        <option value="0" >Please Select your article</option>
        <option value="3"  selected='selected' > value 1</option>
        <option value="2"  > value 2</option>
        <option value="18"  > value 3</option>
        <option value="16"  > value 4</option>
     </select>
   <input type="hidden" name="hiddenselect" value="3" />
  </form> 

第二个是

     <form action="" method="POST" id="form0">
        <input type="text" name="date0" class="tcal" value="" readonly="readonly" /><br />
        <input type="image"   src="../submit.png"/>
        <input type="hidden" name="submit0" />
     </form>

这是我的 javascript

     function displayv() {
    var singleValues = $("select option:selected").text();
    $("#hiddenselect").val(singleValues);

    $("select > option:first").prop("disabled", "disabled")
  }

$(document).ready(function(){
    $("select").change(function() {
        displayv();
    });
    displayv();

    $("select#infmenu").change(function() {
        $("#infform").submit();    
    });
});

现在,当我选择第一个选项时,页面刷新并且我得到了选择的值。当我提交第二次提交时,页面刷新并且第一个选择选项返回空Please Select your article

那么应该如何解决这个问题。

编辑:这是我在它们之间处理的 php。

 if (isset($_POST['infmenu'])){

  $infmenu = $_POST['infmenu']; 
     // some sql of updating here
    }

  if (isset($_POST['submit0'])){
     //some updating sql here
      }
4

3 回答 3

3

我不太清楚你的问题到底是什么。

如果您说在提交第二个表单时没有看到您选择的项目值,那么这是正常的和预期的。您有两个独立的表单,因此当您提交第二个表单时,第一个表单的数据不会发送到服务器。

提交按钮 /image 仅发送其自己表单中的输入数据,而不是来自您的 html 正文标记中的任何其他表单的数据。

编辑添加:您可以:

  • 有一个表单标签而不是两个
  • 修改您的 jquery 以便它将选择值放入第二个表单的隐藏字段以及第一个表单的隐藏字段中。然后在提交第二个表单时,让您的 PHP 脚本读取隐藏字段值,并在呈现 HTML 时使用该值来决定哪个选项具有 selected 属性。
  • 当 select 的值发生变化时,使用带有一些 JavaScript 的 cookie 来设置 cookie
  • 使用 Ajax 进行部分提交 - 假设服务器在处理第二个表单时不需要知道选择项的值

于 2012-08-27T20:35:10.707 回答
0

没有action=""分配给第一个按钮。

于 2012-08-27T20:16:12.137 回答
0

你有两种形式。

当你在第二个表单中点击提交时,当然第一个表单的数据没有提交。

此外,第二种形式的提交按钮没有名称,因此如果单击该按钮,您可能无法在 PHP 中进行评估。但这是一个不同的故事

您应该将两种形式合二为一。

如果它们在您的页面上相距太远。你应该用php在第二种形式的隐藏字段中保存选择框的值

于 2012-08-30T10:23:08.900 回答