2016-09-14 121 views
0

我嘗試開發一個更新/編輯表單有一組單選按鈕的,也兩個不同的下拉列表中兩個選擇輸入之一。獲取數據從任一具有相同名稱的屬性

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循環(第&部)從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'); 
} 

流量是;如果用戶選擇單選按鈕一個,將出現「div1」 - 隱藏「div2」,用戶將通過輸入名稱=部門選擇任何項目並保存在數據庫中。

如果用戶選擇單選按鈕兩「DIV2」將出現 - 「DIV1」隱藏和用戶將在其選擇任何項目,也通過數據庫輸入名稱=部門保存。

我的問題是,如果用戶選擇單選按鈕一,他們必須提交此表格兩次爲了保存SQL數據庫中「部門」的記錄。 下拉列表使用相同的名稱,因爲我想要從任一個中獲取數據,並根據他們選擇的單選按鈕保存在同一列= SQL部門中。

如何防止並允許用戶提交一次? TQ ..

回答

0

如果我理解正確的話,你可以嘗試命名輸入部門[1]部門[2],然後簡單地設置$ _ POST [「部門」]將一個包含這一直是填充。

的輸入:

<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的投入。

+0

感謝您的回覆,我不知道我們可以將輸入存儲在數組「dept [1]」中。我認爲這個表格需要提交兩次的原因是; PHP無法讀取哪個輸入來獲取。 – Alieym

+0

我試圖把這個代碼;但只適用於第一個下拉菜單,我仍然需要提交兩次下拉菜單/ – Alieym

+0

@Alieym都可見輸入?如果您將輸入設置爲顯示:無;它不會被提交。所以你既可以看到它們,也可以使用我給你的PHP來獲得正確的值,或者使用隱藏的javascript並使用可見的。在這種情況下,我建議你添加一個type =「hidden」的輔助輸入,它將索引保存爲它的值。我不確定我的描述是否足夠清晰,所以請隨時詢問你是否不明白我的意思。 – Kalko

相關問題