0

我想创建一个函数,将表单内的所有复选框发布到 php 页面。php 页面会做一些处理并返回一个值。该值将显示给我设置的名为 results 的 div。他们所做的每一次检查都会张贴表格并返回一些东西。(该值将告诉用户还要检查什么或他们必须做什么才能正确填写表格)

我的代码只提交一个检查过的复选框,而不是之前检查过的另一个复选框。

有人可以帮忙吗...

谢谢!!

表单看起来像这样,带有更多复选框。

<input name="picture[1][categories][]" type="checkbox" value=1>
<input name="picture[1][categories][]" type="checkbox" value=2>
<input name="picture[2][categories][]" type="checkbox" value=1>
<input name="picture[2][categories][]" type="checkbox" value=2>
<input name="picture[3][categories][]" type="checkbox" value=1>
<input name="picture[3][categories][]" type="checkbox" value=2>
<div id="result">

我的 jquery 函数看起来像

$("input").click(function() {
    event.preventDefault();

    $("#result").html('');

    var values = $("checkbox").serialize();

    $.ajax({ url: 'http://example.com/check.php',
         data: values,
         type: 'post',
         success: function(output) {
                      // alert(output);
                       $("#result").html(output);
                  }
    });


});
4

2 回答 2

0

一种更简单的方法是在将表单发送到 php 脚本之前使用客户端站点验证。这样你就不会在用户按下提交时不断地调用服务器,只有当数据有效时。

使用调用验证脚本的提交按钮,如果成功则将数据发送到您的 php 脚本。例如

你的html

<button id="submit" onclick="validateForm()">Submit</button> 

在你的 js/jquery

$(document).ready(function(){

    $('#submit').click(function(){
        if(validateForm){

        //send form to php script for further processing
        var formData = $('form').serialize();
        $.post('yourScript.php',formData,formSent);//your script, form data, callback function
        }//end if
    });//end click funciton

});//end document ready

function validateForm(){
    $('form').find('input').each(function() {
    //validate each input item in your form
    //highlight any input errors
    }//end each
   // and return true or false based on the results
   return result;
}//end validateForm

function formSent(data){
    alert('Form has been sent!');
    //display returned data from php script into your results div
    $('#yourDiv').html(data);

}//end formSent

希望这可以帮助...

于 2013-03-14T06:54:54.050 回答
0

将所有复选框放在一个表单中,然后在表单上尝试 $("#form").serialize()。

第二件事,我认为它只会发送选中的复选框。我想这可能会对你有所帮助。

我不明白的第三件事是为什么有重复的复选框,我的意思是所有都是两次,具有相同的名称和值?

于 2013-03-14T10:23:55.283 回答