[英]how to save checkbox value into database
嗨,我有一個復選框,我想將其值保存到數據庫(如果已選中),並保存其他文本(如果未選中)。
我嘗試使用此代碼,它可以工作,但是如果我有2個復選框,它將不再工作。
在view.php中嘗試代碼:
$ch = SELECT check FROM users;
if($ch=="checked"){
echo "checked";
}else{
echo "not checked";
}
html:
<form action="action.php" method="post" id="form">
<p>checkbox: <input type="checkbox" name="check" value="checked" /></p>
<input type="submit" value="submit" />
</form>
action.php:
<?php
define('DB_NAME', 'users');
define('DB_USER', 'root');
define('DB_PASSWORD', '');
define('DB_HOST', 'localhost');
$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
if (!$link) {
die('Could not connect : ' . mysql_error());
}
$db_selected = mysql_select_db(DB_NAME, $link);
if (!$db_selected) {
die('Can not use '.DB_NAME . ' : ' . mysql_error());
}
$check =$_POST['check'];
$sql = "INSERT INTO users (check) VALUES ('$check')";
echo "your informations were sent to our database click to come back";
mysql_query($sql);
mysql_close();
?>
view.php:
<?php
$dbname = "users";
$username = "root";
$password = "";
$servername = "localhost";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM users";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "checkbox : ". $row["check"];
}
} else {
echo "<a class='btsc'>no one registrated if you want register complete the form</a>";
}
$conn->close();
?>
D b :
如前所述,如果未選中復選框值,則不會設置它們。
這是我使用過的一些解決方法:
<input type="hidden" name="check" value="false" />
<input type="checkbox" name="check" id="check" value="true" />
現在,如果選中此復選框,則具有相同名稱的隱藏元素將被覆蓋。
page1.html
的HTML
<form action="page2.php" method="post" id="form">
<p>checkbox: <input type="checkbox" name="check" id="check" value="checked" /></p>
<input type="submit" value="submit" />
</form>
page2.php
的PHP
<?php
// Take the value of the checkbox
$varcheck = $_POST['check'];
// Check if the value of $_POST is correct
echo "The value is: $varcheck";
?>
現在連接到數據庫並運行INSERT INTO QUERY,如下所示:
INSERT INTO users (check) VALUES ('$varcheck');
如果用戶提交了未選中復選框的表單,則$_POST['check']
是不確定的。
因此,如果要根據是否檢查而存儲不同的值,請使用isset($_POST['check'])
。
if ( isset($_POST['check']) ) {
$check = "some value";
} else {
$check = "another value";
}
$sql = "INSERT INTO users (check) VALUES ('$check')";
我也強烈建議您使用PDO或mysqli來執行所有MySQL數據庫操作-注意您使用的mysql_query()
出於主要的安全原因而已棄用!! (請參見http://php.net/manual/en/function.mysql-query.php上的紅色大框)
// this, is the html index.php file
<form action="test.php" method="post" id="form">
<p><input type="checkbox" name="myCheck" data-toggle="toggle" data-
on="absent" data-off="présent" data-onstyle="danger" data-offstyle="secondary"></p>
<input type="submit" value="submit" />
</form>
// Now, we are redirecting... test.php file
<?php
// Take the value of the checkbox
$var = $_POST['myCheck'];
if ($var == 'on') {
$var = 1;
echo "The value is: $var</br>";
}else {$var = 0;
echo "The value is: $var</br>";
}
$sql = "INSERT INTO users (check) VALUES ('$var')";
//..
//...
// value will be 1 or 0;
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.