Php 通过复选框和下拉列表将值传递给sql
如何将下拉值传递给sql数据库以及复选框,例如,如果用户选择了Php 通过复选框和下拉列表将值传递给sql,php,mysql,Php,Mysql,如何将下拉值传递给sql数据库以及复选框,例如,如果用户选择了English和mathematics,则插入数据库的值将为1,否则该值将为0 <form> <p id="p1">Select Your Year</p> <select id="year_sel"> <option value="blank"></option>
English
和mathematics
,则插入数据库的值将为1
,否则该值将为0
<form>
<p id="p1">Select Your Year</p>
<select id="year_sel">
<option value="blank"></option>
<option id="primary" value="primary">Primary</option>
<option value="1">Year one</option>
<option value="2">Year two</option>
<option value="3">Year Three</option>
</select>
<input type="checkbox" name="Math" value="Math">Math<br>
<input type="checkbox" name="English" value="English">English<br>
<input type="checkbox" name="HealthScience" value="HealthScience">Health Science<br>
<input class="sub_reg" type="submit" value="Register Subjects" />
</form>
选择您的年份
主要的,重要的
第一年
第二年
第三年
数学
英语
健康科学
这就是我的数据库的样子
建立数据库连接请参考一些教程(如果您不知道)
编写mysqli insert命令,如下所示
$SQL = "INSERT INTO yourtable (language) VALUES ('$language')";
mysqli_real_escape_string($sql);
$result = mysqli_query($sql) or die (mysqli_error());
现在可以在mysql或任何数据库表中插入此值
未对其进行测试
<form>
<p id="p1">Select Your Year</p>
<select id="year_sel" name="year_sel">
<option value="blank"></option>
<option id="primary" value="primary">Primary</option>
<option value="1">Year one</option>
<option value="2">Year two</option>
<option value="3">Year Three</option>
</select>
选择您的年份
主要的,重要的
第一年
第二年
第三年
应提及HTML元素名称以获取值
首先,您的
需要一个name属性来post->
<select id="year_sel" name="year_sel" >
如果你改成
<form method="post">
其次,复选框只有在选中时才会过帐,因此您可以使用isset()
来使用三元值设置值-
$math = isset($_GET['Math']) ? 1 : 0;
$english = isset($_GET['English']) ? 1 : 0;
...[rest of your checkboxes]...
交换$\u GET
/$\u POST
,就像选择
$math = isset($_POST['Math']) ? 1 : 0;
$english = isset($_POST['English']) ? 1 : 0;
(1) 您的
需要一个名称属性来发布
。由于您使用的是
,默认值为get
,因此您可以在$\u get['year\u sel']
中获取所选值。如果您将其更改为
,那么您将在$\u POST['year\u sel']
中获得它。(2) 复选框仅在选中时才会过帐,因此您可以使用isset()
使用三元设置值-$math=isset($\u GET['math'])?1 : 0;代码>。(交换$\u GET
/$\u POST
就像select一样)。请将此评论作为答案发布,这样我就可以标记为2016年的情况是正确的-没有理由使用mysql.*
函数,即使只是作为示例。即使使用mysqli\u query()
也会有所改进。更好(尽管从技术上讲mysqli\u real\u escape\u字符串(string$link)
和mysqli\u错误(string$link)
需要mysqli
连接链接->mysqli\u real\u escape\u字符串($conn,$sql)
mysqli\u错误($conn)
)仅代码的答案在这里不是很有帮助,所以。编辑你的答案,并解释为什么你的代码是OP的正确答案。细节总是让它更好。
$year_sel = $_GET['year_sel'];
<form method="post">
$year_sel = $_POST['year_sel']
$math = isset($_GET['Math']) ? 1 : 0;
$english = isset($_GET['English']) ? 1 : 0;
...[rest of your checkboxes]...
$math = isset($_POST['Math']) ? 1 : 0;
$english = isset($_POST['English']) ? 1 : 0;