1

我是 PHP 新手。我学会了如何从文本框中插入数据,但是当我必须从复选框中获取数据时,我现在面临一个问题。我查看了其他帖子,但它们要么太高级,而且大多数都使用 mysql 而不是 mysqli。

我有 ->> 两个复选框和一个提交按钮

我想在选择(一个或两个)时将复选框的值插入数据库。

谢谢

HTML表格代码:

<html>
<head>

<title>Insert Data</title>
</head>

<body>
<h1> check box testing </h1>


<form name="form1" method="post" action="checkbox_test.php" >
<fieldset>
<legend> Checkbox Trial </legend> 

<h3> Subject selection </h3>
<input type="checkbox" name="PHP" value="php" id="cbsubp1"/> PHP 


<br/>
<input type="checkbox" name="ASP" value="course[]" id="cbsub2"/> ASP.NET 
<br/>
<input type="submit" value="submit" id="submit"/>

</fieldset>


</form>

</body>
</html>

PHP代码是

<html>
<head>

<title>Insert Data</title>
</head>

<body>
<h1> check box testing </h1>

<?php
$con=mysqli_connect("localhost","root","","chkbox");
//check connection
if(mysqli_connect_errno())
{
    echo "Cannot connect to mySQL:".mysqli_connect_error();
}
else
{
    echo "Connected to mySQL succesfully";
}

$query= "INSERT into sub(Subject1) VALUES('$_POST[php]')";
if (!mysqli_query($con,$query))
  {
  die('Error: ' . mysqli_error($con));
  }
echo "record added";
?>
</body>
</html>
4

1 回答 1

1

有关信息:

如果未在表单上选中复选框,则不会在帖子数组中发送该字段。即实际的字段名 $_POST['PHP'] 将不存在。

您需要将代码更改为类似的内容。

$subject1 = isset($_POST['php']) ? mysqli_real_escape_string($_POST['php']) : 'DEFAULT_VALUE'; 

$query = "INSERT into sub(Subject1) VALUES('$subject1')";
$result = mysqli_query($query);
if ( $result ) {
    echo 'Record Added';
} else {
    die('Error: ' . mysqli_error($con));
}

如果用户未选择复选框,这将插入复选框字段的值或您的默认值。

于 2013-06-13T12:23:08.257 回答