<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)
答案 0 :(得分:2)
Value
中缺少{p> option
,其原因是下拉值未发布表单而未保存到数据库中
<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注入。阅读此内容以防止它形成
How can I prevent SQL injection in PHP?
<强> EDITED 强>
未插入数据,因为数据库中的sname,scode,category,sadd
为integer type
并且您尝试插入character
将sname,scode,category,sadd
作为varchar
提交到您的数据库