2014-01-27 100 views
-1

感謝您的回覆!我明白你來自哪裏。我沒有按照我應該的說出我的問題,但是我真正想知道的是將值插入數據庫的最佳方式是什麼。將複選框的值插入與複選框名稱相同的MySQL列中

這裏是形式

<form name="election" action="post.php" method="POST"> 
<b>Sally</b><br><input type="checkbox" name="FR01" value="ON"> 
<b>Suzy</b><br><input type="checkbox" name="FR02" value="ON"> 
<b>Jeremy</b><br><input type="checkbox" name="FR03" value="ON"> 
<b>William</b><br><input type="checkbox" name="FR04" value="ON"> 
<div id="search" align=center><input type="submit" id="search" value="Cast Vote"></div> 
</form> 

我有選舉結果的數據庫有一個自動遞增的ID,然後我想將「開」到所對應的複選框後命名的列的例子,所以如果複選框FR01被選中,在該列中插入「開」,他們可以選擇最多三個候選人。我的困惑是,我查找的所有教程和例子,沒有人有類似的情況,因爲我發現自己在,因此我沒有找到任何例子,因爲我發現每個例子,人們使用相同的名稱和不同的值。我想簡單地插入與複選框名稱相同的表中的列。

對不起,我感到困惑。我是新手,這是我第一次使用這個網站。 謝謝

+0

單選按鈕都具有相同的名稱,因爲一次只能檢查其中一個。有了複選框,任何數量都可以被檢查,所以你需要一些方法來檢測哪些是哪些不是。您可以將它們命名爲'yourField []',然後使用唯一的ID作爲'value'。這樣,你可以在你的'$ _POST ['yourField']'中有一個值的數組,並且你會知道哪些被檢查過。 –

+0

@RocketHazmat我明白,對不起的問題抱歉。 – user2907299

+0

你可以以任何你想要的方式做到這一點。 'name =「vote []」value =「candidate1'或'name =」candidate1「value =」ON「'都可以,但我不會使用」ON「作爲數據庫中存儲的值。值(1或0)通常用於此 – mcrumley

回答

2

複選框可以具有相同的名稱或值。這真的取決於情況或要求。 看到這個:

<input type="checkbox" name="vehicle[]" value="Bike">I have a bike<br> 
<input type="checkbox" name="vehicle[]" value="Car">I have a car 

這裏的名字是相同的是vehicle但值的不同。

這:

<input type="checkbox" name="myVehicle[]" value="car">I have a car<br> 
<input type="checkbox" name="otherVehicle[]" value="car">He has a car 

這裏值是相同的是car但名稱的不同。

一組複選框將是最合適的。通過在複選框名稱中使用[],PHP將自動將它們解析爲本機數組。

$selectedVehicle = 'None'; 
if(isset($_POST['vehicle']) && is_array($_POST['vehicle']) && count($_POST['vehicle']) > 0){ 
$selectedVehicle = implode(', ', $_POST['vehicle']); 
} 

$body .= 'Selected Vehicle: ' . $selectedVehicle; 
+2

這是正確的,但它是PHP通常有助於將方括號放在名稱後面使其成爲一個數組('vehicle []')。 – mcrumley

+0

您的示例將是偶數 – ToBe

+0

對不起,我修改了我的問題,因爲我完全是向後問的,但是現在我試圖解決的問題現在已經更清晰了,謝謝你的好例子。 – user2907299