我尝试开发一个更新/编辑表单,其中包含一组单选按钮以及两个不同的下拉列表。
HTML
2单选按钮 - 从SQL数据库(一个和两个)填充:
<?php if ($rows_item['choice'] == "One" ) {?><input name="owner_c" id="owner_c1" type="radio" value="One" checked="checked" onclick="show1()"/>One<?php } ?>
<?php if ($rows_item['choice'] == "Two" ) {?><input name="owner_c" id="owner_c2" type="radio" value="Two" checked="checked" onclick="show2()"/>Two<?php } ?>
2下拉列表 - 通过while循环(Section&amp; Department)从SQL数据库填充:
<div id="div1" class="<?php if ($rows_item['choice'] != "One") { echo "hide";} ?>">
<p align="center">
<?php
if ($rows_item['choice'] == "One") {
$sql_section = "SELECT * FROM borrower_section";
$query_section = mysql_query($sql_section) or die('Error:'.mysql_error());
?>
<select name="dept" id="dept1" style="width:400px;" required >
<option value="-1" selected="selected" disabled="disabled">Sections *</option>
<?php while ($row_section = mysql_fetch_array($query_section)) { ?>
<option <?php if($rows_item['dept']==$row_section['sections']) { echo "selected";} ?> value="<?php echo $row_section['sections']; ?>"><?php echo $row_section['sections']; ?></option>
<?php } ?>
</select>
</p>
</div>
<div id="div2" class="<?php if ($rows_item['choice'] != "Two") { echo "hide";} ?>">
<p align="center">
<?php
}
if ($rows_item['choice'] == "Two") {
$sql_dept = "SELECT * FROM borrower_dept";
$query_dept = mysql_query($sql_dept) or die('Error:'.mysql_error());
?>
<select name="dept" id="dept2" style="width:400px;" >
<option value="-1" selected="selected" disabled="disabled">Departments *</option>
<?php while ($row_dept = mysql_fetch_array($query_dept)) { ?>
<option <?php if($rows_item['dept']==$row_dept['dept_name']) { echo "selected";} ?> value="<?php echo $row_dept['dept_name']; ?>"><?php echo $row_dept['dept_name']; ?></option>
<?php }}?>
</select>
</p>
</div>
的Javascript
function show1(){
document.getElementById('div1').style.display ='block';
document.getElementById('div2').style.display ='none';
$('#dept2').removeAttr('required');
$('#dept1').attr('required','required');
}
function show2(){
document.getElementById('div1').style.display = 'none';
document.getElementById('div2').style.display = 'block';
$('#dept1').removeAttr('required');
$('#dept2').attr('required','required');
}
流程是;如果用户选择单选按钮一,&#34; div1&#34;将出现 - &#34; div2&#34;隐藏,用户将选择任何项目并通过输入名称= dept 保存在数据库中。
如果用户选择单选按钮2 ,&#34; div2&#34;将出现 - &#34; div1&#34;隐藏,用户将选择其中的任何项目,也可以通过输入名称= dept 保存在数据库中。
我的问题是,如果用户选择单选按钮一,他们必须提交此表单两次才能保存&#34; dept&#34;在SQL数据库中。两个下拉列表都使用相同的名称,因为我想从任一个中获取数据并根据他们选择的单选按钮保存在SQL中的同一列= dept 。
如何防止这种情况并允许用户提交一次? TQ ..
答案 0 :(得分:0)
如果我理解正确,您可以尝试命名输入 dept [1] 和 dept [2] ,然后只需将$ _POST ['dept']设置为包含已被填充的那个。
输入:
<select name="dept[1]" id="dept1" style="width:400px;" required >...</select>
<select name="dept[2]" id="dept1" style="width:400px;" required >...</select>
php:
$_POST['dept'] = !empty($_POST['dept'][1]) ? $_POST['dept'][1] : $_POST['dept'][2];
如果您使用javascript“过滤”输入,那么您可以继续操作。