隐藏可见性的输入字段值未发布

时间:2016-08-13 09:48:36

标签: javascript php jquery html css

我有一个带有数字选项的选择框。每当用户选择一个选项时,我会根据所选的数字通过jquery显示输入框。因此,输入框最初是隐藏的。现在的问题是,当我尝试发布那些输入框的值时,它们不会被发布。 这是html代码 -

<form action="data.php" method="POST">
    Select the number of company:
      <select name="num_of_comp" id="num_of_comp">
        <option value="1">1</option>
        <option value="2">2</option>
      </select>     
<div id="div1" style="visibility:hidden;">
<label for="dbname">database name:</label>
<input type="text" name="db1" id="db1" />
<input type="submit" name="submit" id="submit" />
</div>
<div id="div2"  style="visibility:hidden;">
<label for="dbname">database name:</label>
<input type="text" name="db1" placeholder="db1 name"/>
<input type="text" name="db2" placeholder="db2 name"/>
<input type="submit" name="submit" id="submit" />
</div> 

以下是动态显示输入框的脚本 -

$('#num_of_comp').on('change',function(){
    if( $(this).val()==="1"){
    $("#div1").css("visibility", "visible");
     $("#div2,").css("visibility", "hidden");
    }
    else if( $(this).val()==="2"){
    $("#div2").css("visibility", "visible");
     $("#div1").css("visibility", "hidden");
    }

这是php代码 -

$i = $_POST['num_of_comp'];
if($i == '1'){
$db1 = $_POST['db1'];
echo $db1;

这里我没有得到db1的值。 提前谢谢。

3 个答案:

答案 0 :(得分:2)

您有两个名为db1的输入。第二个值(不带id的输入)覆盖第一个值(使用id="db1"输入)。

答案 1 :(得分:2)

您不能为多个字段设置相同的ID,所有字段的ID都应该是唯一的。

所以为表格中的所有字段设置不同的ID

即使所有输入字段的名称在这里也应该是唯一的。

答案 2 :(得分:0)

这是你的问题

你对两个输入字段使用相同的id是错误的,页面中的每个id都应该是唯一的,否则你无法获得你期望字段的实际值,并使用正确的命名为那些id然后你不会错过那些问题和代码将清楚也使用名称属性的不同名称

<input type="text" name="db1" id="database1" />
<input type="submit" name="submit" id="submit" />

<div id="div2"  style="visibility:hidden;">
<label for="dbname">database name:</label> 
<input type="text" name="db2" id="database2" placeholder="db1 name"/>
</div>