<script type="text/javascript">
function showfield(name){
if(name=='Other')document.getElementById('div1').innerHTML='other: <input type="text" name="other" />';
else document.getElementById('div1').innerHTML='';
}
</script>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href = "css/bootstrap.min.css" rel = "stylesheet">
<title> Insert</title>
</head>
<body>
<h1>Insert Data In to Db</h1>
<form action="teachersubmit.php" method="post" id="form">
<input type="hidden" name="submitted" value ="true" />
<label> School Code: <input type="text" name="scode" /></label>
<label> Category: <input type="text" name="category" /></label>
<label> name: <input type="text" name="sname" /></label>
<label> Address: <input type="text" name="sadd"></label><br>
<label> name: <select name="gender" id="gender">
<option value="male">male</option>
<option value="female">female</option>
<option value="Other">Other</option>
</select></label>
<div id="div1"></div>
<button type="submit" form="form" value="Submit">Submit</button>
</form>
if (isset($_POST ['submitted']) ){
$con = mysqli_connect("localhost","root","","school");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
if(!empty($_POST['other']))
{
$sname=$_POST['sname'];
$scode=$_POST['scode'];
$category=$_POST['category'];
$sadd=$_POST['sadd'];
$gender=$_POST['other'];
$sqlinsert= "INSERT INTO form1 (sname,scode,category,sadd,gender) VALUES ('$sname' , '$scode', '$category', '$sadd', '$gender')";
if(!mysqli_query($con, $sqlinsert)){
die ('not inserted');
}}
else{
$sname=$_POST['sname'];
$scode=$_POST['scode'];
$category=$_POST['category'];
$sadd=$_POST['sadd'];
$gender=$_POST['gender'];
$sqlinsert= "INSERT INTO form1 (sname,scode,category,sadd,gender) VALUES ('$sname' , '$scode', '$category', '$sadd', '$gender')";
if(!mysqli_query($con, $sqlinsert)){
die ('not inserted');
}
}
解决。。。。。谢谢大家的帮助,我只是提出了一个条件,如果该隐藏字段为空,则获取下拉值,如果不是,则获取文本框值......欢呼:)
这是数据库结构:
sname varchar(100)
category varchar(100)
sadd varchar(100)
scode varchar(20)
gender varchar(100)
option
中缺少Value
,这就是下拉值未发布表单表单且未保存到数据库的原因
<option>male</option>
<option>female</option>
这将是
<option value="male">male</option>
<option value="female">female</option>
要检查查询中的错误,请阅读
http://php.net/manual/en/mysqli.error.php
您的代码已开放用于 sql 注入。阅读此内容以防止它形成它
如何防止 PHP 中的 SQL 注入?
编辑
未插入数据,因为数据库中sname,scode,category,sadd
integer type
,并且您正在尝试插入character
ALter sname,scode,category,sadd
作为varchar
提交到您的数据库中