如何制作具有不同类型输入的注册表格(复选框&单选按钮)使用Ajax


How to make a registration form having different type of inputs (check box & radio button) using Ajax

我想制作一个具有不同类型输入的注册表单,并使用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将它们读入数组。在您的情况下,进行上面建议的编辑会更简单。