2013-11-26 43 views
0

我有一個包含大量複選框的表單,當您選中複選框時,從發送值「on」開始。在我將它們插入到數據庫之前,我想將它們更改爲更有用的值,例如「Yes」,然後對於未檢查的所有框,值爲「No」。有人可以幫助我嗎?將「開」的表單的所有值更改爲「是」

這是我的代碼:

<?php 

include_once 'database_login.php'; 

$barcode = $_POST['barcode']; 
$name = $_POST['name']; 
$company = $_POST['company']; 
$fair_trade = $_POST['fair_trade']; 
$palm_oil = $_POST['palm_oil']; 
$organic = $_POST['organic']; 
$gm_free = $_POST['gm_free']; 
$nz = $_POST['nz']; 
$animals = $_POST['animals']; 
$recyclable = $_POST['recyclable']; 
$category = $_POST['category']; 
$sub_category = $_POST['sub_category']; 


$add = "INSERT INTO products (barcode, name, company, fair_trade, palm_oil, organic, gm_free, nz, animals, recyclable, category, sub_category) VALUES ('$barcode', '$name', '$company', '$fair_trade', '$palm_oil', '$organic', '$gm_free', '$nz', '$animals', '$recyclable', '$category', '$sub_category')"; 
$added = mysqli_query($con, $add); 
header("Location: add.php?message=1"); 


mysqli_close($con); 


?> 
+0

輸入類型複選框有屬性名爲'value =「yourvalue」'分配該值並通過表單提交頁面獲取它 –

+1

你正在向SQL查詢中直接注入很多和很多變量,這意味着** SQL注入非常簡單**。從'mysql_'切換到'mysqli_'不會奇蹟般地解決這個問題。您需要使用準備好的語句並綁定變量。 – h2ooooooo

+0

爲什麼不把它作爲一個布爾值來存儲,那麼如果你需要顯示這些值,你可以在你從數據庫中檢索它之後進行修改。 –

回答

0

你可以改變你的複選框的值,

<input type="checkbox" name="chk_name1" value="Yes"> 

爲未選中,但應該有No值複選框,

// all form checkbox 
$checkbox = array("chk_name1", "chk_name2"); 
foreach ($checkbox as $name) $_POST[$name] ?: "No"; 
+0

感謝隊友。這似乎很簡單! – georgewoofbates

0

使用速記/三元運營商實現這一目標。

$gm_free = ($_POST['gm_free'] == "on" ? "Yes" : "No"); 
0
$checkbox = $_POST['myCheckbox'] == "on" ? "yes" : "no"; 
相關問題