我想制作一个具有不同类型输入的注册表单,并使用Ajax $.post method
在数据库中插入数据。HTML代码:
index . php
<html>
<head>
<script type="text/javascript" src="jqueru.js"></script>
<script>
$(document).ready(function()
$("#submit").click(function(){
$.post(
"phpindex.php",{
name:$('#ib1').val(),
mygender:$('#ib2').val(),
mygender:$('#ibi3').val(),
lang1:$('#ib4').val(),
lang2:$('#ib5').val()
},
function(data){
$("#mydiv").html(data)
}
)
});
)};
</script>
</head>
<body>
<table>
name:-<input type=text name="" id="id1"/><br/>
gender:-<input type=radio name="mygender" value="" id="ib2"/>male
<input type=radio name="mygender" value="" id="ib3"/>female<br/>
lamguage:-<input type=checbox name="lang1" value="" id="ib4"/>hindi
<inut type=checkbx name="lang2" value="" id="ib5"/>nglish
<input type="submit" name="submit" id="submit">
</table>
</body>
</html>
问题是只插入了名称,其余的数据(性别和语言)没有插入到表中。保存这些HTML的PHP文件如下:
phpndex.php
<?php
mysql_connect("localhost","root","");
mysql_select_db("mydb");
$var1=$_POST['name'];
$var2=$_POST['mygender'];
$var3=$_POST['mygender'];
$var4=$_POST['lang1'];
$var5=$_POST['lang2'];
$var6=$var4.$var5;
$query="insert into mytable4 values('$var1','$var2','$var3','$var6')";
$result=mysql_query($query);
if($result)
{echo"data is inserted";)
else{echo"data is not inserted";}
?>
我想你有很多问题。
1)语言复选框的类型属性应该双引号,类型拼写错误,值缺失。它们应该是:
<input type="checkbox" name="lang1" value="hindi" id="ib4"/>hindi
<input type="checkbox" name="lang2" value="english" id="ib5"/>english
2)您可能会覆盖"mygender"的选定值,因为您将其添加到post哈希两次。为了使它以最小的更改工作,您可以将post哈希声明编辑为:
mygender1:$('#ib2').val(),
mygender2:$('#ibi3').val(),
并编辑为:
$var2=$_POST['mygender1'];
$var3=$_POST['mygender2'];
虽然您可以从技术上向服务器发送具有相同名称的多个表单变量,但您需要使用以[]为后缀的输入名称(如"mygender[]")向PHP声明它们,以便PHP将它们读入数组。在您的情况下,进行上面建议的编辑会更简单。