当前位置: 首页 > 面试题库 >

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

鄂昌胤
2023-03-14
问题内容

我想通过jQuery的.ajax()在我的网站上提交一个POST表单,该表单包含一个textarea字段和一个输入字段(类型为“
checkbox”,其中复选框的数量为任意/可变)。PHP接收到textarea数据,并且ajax响应已正确显示给用户。但是,PHP似乎没有收到复选框数据(是否选中了复选框)。我该如何工作?这是我的代码:

HTML:

<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:

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

$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吗?怎么样?使用复选框发送表单数据时,一种方法比另一种方法好吗?我已经坚持了两天。任何帮助将不胜感激。提前谢谢!


问题答案:
var myCheckboxes = new Array();
$("input:checked").each(function() {
   data['myCheckboxes[]'].push($(this).val());
});

您将复选框推到错误的数组data['myCheckboxes[]']而不是myCheckboxes.push



 类似资料:
  • 我正在尝试使用POST提交表单,但我有一些来自 标记的额外数据,这些数据已存储到JS对象中。当我从JavaScript中点击时,我想把它发送到服务器。 我尝试做的是用事件发送

  • 问题内容: 我有一个内置的javascript,它可以执行以下操作:通过ajax-> php-> sql获取内容,并在单击内容后在index.php上显示它,将显示新内容。 现在,我想拥有一个在将内容单击到php之后发送数据的函数,该函数将在db中执行某些操作。如何创建将发送数据的功能?谢谢! 这是我的显示内容的代码: }); }` 问题答案: 您可以通过在jQuery.ajax 设置中包含值,将

  • 问题内容: 我在这里查找了一些示例,但是其中许多示例要么太高级以至于无法掌握PHP,要么它们的示例过于针对自己的项目。我目前正在努力处理PHP表单的非常基本的部分。 我正在尝试创建一个带有几个复选框的表单,每个复选框分配一个不同的值,我希望将这些复选框发送到一个变量(数组?),以便以后可以回显/使用,在我的情况下,我将在其中发送已检查的值一封电邮。 到目前为止,我已经尝试了一些变体,但是最接近的是

  • 问题内容: 我有一个带有很多表单字段(12 xn行)的表单。每行中的第一个字段(代表产品)是一个类似于以下内容的复选框: 每个复选框的值都是唯一的。 我正在尝试将检查后的值发送到PHP脚本以通过Ajax进行处理。我遇到的问题是将ID正确获取到服务器。我尝试使用以下几种方法: 和 但是这些都会导致在服务器上获取此信息: 我可以序列化整个表单并将其发送过来,但是这可能导致发送的许多数据将不被使用。 如

  • 我工作在一个角,实现应用程序 我的代码 component1.ts 我想将变量< code>this.param传递给component2 component1.html component2.ts 我不确定如何在组件2中获取此数据。我收到错误。找不到地图。有人可以帮我吗? 谢谢

  • 问题内容: 我有MySQL数据库服务器 我需要通过JSON更新和检索MySQL服务器中的数据 所以,我想知道如何做到这一点,并且让这个示例语句感到困惑: 这意味着我需要先编写与PHP服务器连接的应用程序代码,然后再编写php以连接数据库。 问题答案: 要将数据发送到服务器,您可以执行以下操作: 然后发送让说: 因此服务器上的AddAccelerationData.php文件为: 这是我最近使用的示