我有三个复选框和三个输入字段,如下所示,
<input type="checkbox" name="fruit" value="orange" >
<input type="text" name="orange" >Orange
<input type="checkbox" name="fruit" value="apple" >
<input type="text" name="n" >Apple<br/>
<input type="checkbox" name="fruit" value="mango" >
<input type="text" name="mango" >Mango
我有一个名为fruits的mysql表,其中有四列名为id,apple,orange,mango。 我想做的事情就像用户选择橙色,苹果,芒果(复选框)我想在三个输入字段中将数据插入表格中的橙色,苹果,芒果,或者如果用户选择两个用户复选框,它将只插入数据从输入字段的值到两列,或者如果只选中一个复选框,则插入一列!这样做的标准程序是什么?提前致谢
答案 0 :(得分:2)
仅发送选中的复选框,因此请使用isset
:
if (isset($_POST['mango']) || isset($_POST['apple']) || isset($_POST['orange'])) {
$query = 'INSERT INTO table VALUES (orange, apple, mango) VALUES (';
$query .= (isset($_POST['orange']) ? 1 : '') . ',';
$query .= (isset($_POST['apple']) ? 1 : '') . ',';
$query .= (isset($_POST['mango']) ? 1 : '');
$query .= ')';
}
答案 1 :(得分:0)
它对我有用。
我的代码:
HTML
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="POST">
<input type="checkbox" name="fruit[]" value="orange" >Orange
<input type="checkbox" name="fruit[]" value="apple" >Apple
<input type="checkbox" name="fruit[]" value="mango" >Mango
<input type="submit" value="Insert into Database">
</form>
PHP
<?php
// define variables and set to empty values
$fruits = array();
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
$fruits = test_input($_POST);
}
function test_input($data)
{
$servername = "";// localhost, server name
$username = "";// username
$password = "";//password
$dbname = "";//database name
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
for($i =0; $i < sizeof($data["fruit"]); $i++)
{
//select query where count > 0 and fruitname = $data["fruit"]
//If its first time, Select query returns false
// write Insert into db table values(fruitname = $data["fruit"] , count =1)
// if its exist value, select query returns count value,
// update query set value = value+ 1 where fruitname = $data["fruit"]
}
}
?>