php - 在 jQuery 中以数组形式接收 input[] 的所有值以发送到 PHP 脚本

标签 php jquery arrays checkbox

我正忙于使用 jQuery 获取表单上的值并将其发送到我的 PHP 脚本。嗯,我的大多数复选框都有一个 name="input[]" 形式的名称,因此当我提醒表单的 submit() 中返回的值时处理程序,它只返回具有该名称的第一个复选框的值。如何以数组形式返回值?

这是我的代码:

$("form.enquiry").submit(function () {
    // general enquiry variables
    var name = "";
    var email = "";
    var enquiry = "";

    // quote enquiry variables
    var company = "";
    var address = "";
    var cellphone = "";
    var quote_package = "";
    var quote_items = "";

    // data to be sent to sendEmail.php
    var data = "";

    if ($(this).find("input[name='enquiry_type_chk']:checked").val() == "General") {
        name = $(this).find("input[name='general_name_txt']").val();
        email = $(this).find("input[name='general_email_txt']").val();
        enquiry = $(this).find("textarea[name='general_enquiry_txt']").val();

        data = "name_txt="+name+"&email_txt="+email+"&enquiry_txt="+enquiry;
    }

    if ($(this).find("input[name='enquiry_type_chk']:checked").val() == "Quote") {
        name = $(this).find("input[name='quote_name_txt']").val();
        email = $(this).find("input[name='quote_email_txt']").val();
        company = $(this).find("input[name='quote_company_txt']").val();
        address = $(this).find("input[name='quote_address_txt']").val();
        cellphone = $(this).find("input[name='quote_cell_txt']").val();
        quote_package = $(this).find("input[name='quote_package_chk[]']").val();
        quote_items = $(this).find("input[name='quote_item_chk[]']").val();

        data = "name_txt="+name+"&email_txt="+email+"&company_txt="+company+"&address_txt="+address+"&cellphone_txt="+cellphone+"&quote_package_txt="+quote_package+"&quote_items_txt="+quote_items;

        alert(data);
    }


    return false;
});

以及我的表格的一部分:

...
<td><input type="checkbox" name="quote_item_chk[]"  id="quote_package_chk" value="Login member area" class="power toolbox quote_item_chk" />
<label for="quote_package_chk" class="nostyle item power toolbox">Login/member area</label></td>
<td><input type="checkbox" name="quote_item_chk[]" class="quote_item_chk basic power toolbox" id="quote_package_chk" value="Photo video gallery" />
<label for="quote_package_chk" class="nostyle item basic power toolbox">Photo and/or video gallery</label></td>
<td><input type="checkbox" name="quote_item_chk[]"  id="quote_package_chk4" class="quote_item_chk" value="Portfolio" />
<label for="quote_package_chk4" class="nostyle item">Portfolio (gallery + custom descr.)</label></td>

提前致谢。

最佳答案

您可以循环返回的元素(而不是在组上调用 val(),它仅对第一个进行操作),但停止重新发明轮子并仅使用 serialize 会更容易

关于php - 在 jQuery 中以数组形式接收 input[] 的所有值以发送到 PHP 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3500851/

相关文章:

javascript - 忽略元素 html 的验证 - Jquery 验证

java - 在对象数组的元素中调用方法

php - 使用Jquery将数据保存到数据库

php - ffmpeg 编码 mpeg

jquery - 单击显示子菜单但隐藏其他子菜单

php - 将 MySQL 列转换为自定义数组字符串

javascript - 根据字符串中的标点符号将字符串拆分为数组元素 - JavaScript

php - 具有 MySQL、Sphinx、Nginx、PHP-FPM、Memcached 和 Redis 的高性能 Web+数据库服务器

列的 Php pdo 总和(数字数据类型)

jquery - vue.js 'document.getElementById' 速记