首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >通过jQuery ajax()将多个复选框数据发送到PHP

通过jQuery ajax()将多个复选框数据发送到PHP
EN

Stack Overflow用户
提问于 2012-02-29 12:18:13
回答 6查看 109.3K关注 0票数 25

我想通过jQuery的.ajax()在我的网站上提交一个包含文本区域字段和输入字段(带有任意/可变数量的复选框的type=“复选框”)的POST表单。PHP接收文本区域数据,并将ajax响应正确地显示给用户。但是,PHP似乎没有接收到复选框数据(是否已选中)。我怎么才能让它工作呢?下面是我的代码:

HTML:

代码语言:javascript
复制
<form method="post" action="myurl.php" id=myForm>
    <textarea id="myField" type="text" name="myField"></textarea>
    <input type="checkbox" name="myCheckboxes[]" id="myCheckboxes" value="someValue1" />
    <input type="checkbox" name="myCheckboxes[]" id="myCheckboxes" value="someValue2" />
    ...(maybe some more checkboxes - dynamically generated as necessary)
    <input id="submit" type="submit" name="submit" value="Submit" onclick="submitForm()" />
</form>

jQuery:

代码语言:javascript
复制
function submitForm() {
$(document).ready(function() {
$("form#myForm").submit(function() {

        var myCheckboxes = new Array();
        $("input:checked").each(function() {
           myCheckboxes.push($(this).val());
        });

        $.ajax({
            type: "POST",
            url: "myurl.php",
            dataType: 'html',
            data: { myField:$("textarea[name=myField]").val(),
                    myCheckboxes:myCheckboxes },
            success: function(data){
                $('#myResponse').html(data)
            }
        });
        return false;
});
});

现在,PHP

代码语言:javascript
复制
$myField = htmlspecialchars( $_POST['myField'] ) );
if( isset( $_POST['myCheckboxes'] ) )
{
    for ( $i=0; $i < count( $_POST['myCheckboxes'] ); $i++ )
    {
        // do some stuff, save to database, etc.
    }
}
// create the response
$response = 'an HTML response';
$response = stripslashes($response);
echo($response);

一切工作正常:当表单提交时,一条新的记录被存储在我的数据库中,响应被返回到网页,但复选框数据不被发送。我想知道哪些复选框(如果有)已选中。我读过关于.serialize(),JSON等的文章,但是没有一个是有效的。我必须在jQuery和PHP中序列化/JSON吗?多么?在使用复选框发送表单数据时,哪种方法比另一种更好?我已经被困在这个问题上两天了。任何帮助都将不胜感激。提前感谢!

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9493531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档