1

私はPHPが初めてです。テキストボックスからデータを挿入する方法を学びましたが、チェックボックスからデータを取得する必要があるときに問題に直面しています。他の投稿をチェックしましたが、それらは高度すぎて、ほとんどが mysqli ではなく mysql を使用しています。

私は->> 2つのチェックボックスと送信ボタンを持っています

チェックボックスを選択したときに、チェックボックスの値をデータベースに挿入したいと思います(1つまたは両方)。

ありがとう

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 に答える