2015-09-10 113 views
0

嗨我想创建一个简单的功能,其中当用户单击单选按钮值'是'它会显示一个下拉列表,但当用户单击否它会显示一个文本框。然后,这些值将被插入到数据库中。HTML:单选按钮显示下拉列表或文本框根据选择

这是我的单选按钮,下拉列表中的代码和文本字段代码:

<td>Principle Author/Member</td> 
 
<td>:</td> 
 
<td>SEC member? 
 
    <br/> 
 
    <input type="radio" onclick="javascript:check();" name="radiocheck" id="yes">Yes 
 
    <input type="radio" onclick="javascript:check();" name="radiocheck" id="no">No 
 
    <br /> 
 
    <div id="checkyes" name="checkyes" style="display:none;"> 
 
    <select name="p_author" id="p_author"> 
 
     <option value="A">A</option> 
 
     <option value="B">B</option> 
 
     <option value="C">C</option> 
 
     <option value="D">D</option> 
 
     <option value="E">E</option> 
 
     <option value="F">F</option> 
 
     <option value="G">G</option> 
 
     <option value="H">H</option> 
 
     <option value="I">I</option> 
 
     <option value="J">J</option> 
 
     <option value="K">K</option> 
 
     <option value="K">K</option> 
 
     <option value="L">L</option> 
 
     <option value="M">M</option> 
 
     <option value="N">N</option> 
 
     <option value="O">O</option> 
 
     <option value="P">P</option> 
 
     <option value="Q">Q</option> 
 
     <option value="R">R</option> 
 
     <option value="S">S</option> 
 
     <option value="T">T</option> 
 
    </select> 
 
    </div> 
 
    <div id="checkno" name="checkno" style="display:none"> 
 
    <input type="text" name="p_author" id="p_author" size="40" placeholder="Please enter here.."> 
 
    </div> 
 
</td>

这是我的Javascript代码:

function check() { 
 
    if (document.getElementById('yes').checked) { 
 
    document.getElementById('checkyes').style.display = 'block'; 
 
    document.getElementById('checkno').style.display = 'none'; 
 
    } else { 
 
    document.getElementById('checkyes').style.display = 'none'; 
 
    document.getElementById('checkno').style.display = 'block'; 
 
    } 
 
}

它可以工作,我可以将值(对于下拉列表和文本字段)插入数据库,但现在当我重新检查并尝试将下拉值插入数据库时​​,它不起作用。我只能插入文本字段值。我在这里和那里做了些改变,但仍然无法实现。有人能指出我在这里做错了什么吗?

回答

0

您设置的选择和输入使用相同的ID,你的数据库始终保存输入的文本价值,因为它是最后一个字段中发送,如果您通过GET发送你

your_page?radiocheck=on&p_author=B&p_author=text 

您应该更改名称和ID,即

<select name="p_author1" id="p_author1"> 
... 
</select> 

... 

<input type="text" name="p_author2" id="p_author2" size="40" placeholder="Please enter here.."> 
+0

@Azie这是一个PHP文件,对不对? –

+0

嗨,我试过你的解决方案,它的工作原理。谢谢! :)但我只是想知道是否可以将其设置为相同的名称和ID并将这两个值存储在同一列中,例如作者。只是想知道 – Azie

+0

是的,它是一个PHP文件 – Azie

0

我认为问题在于一旦对象被隐藏,它就不会与表单提交一起传递。

我建议的是一个隐藏字段的运行列表。提交表单之前,请将这些值放入这些字段中。那么你将永远拥有所有的信息。您是否选择在使用PHP处理表单时使用它取决于您。

相关问题