javascript - 如何通过 AJAX 发送 PHP 数组?

标签 javascript php jquery arrays ajax

在我的注册页面上,人们可以通过填写一些输入广告复选框来注册我的网站。它基本上是一种使用 ajax 将数据发送到 PHP 页面的表单,然后将其放入数据库中。

例如,javascript 从这样的表单中获取值

var w = _("website").value;
var bio = _("bio").value;

然后像这样发送ajax.send("w="+w+"&bio="+bio);这是正常工作的,但我想添加一些内容。

现在我有许多复选框,我想将它们放入一个数组中,该数组通过 ajax 发布在一个变量中。所以在我的表格中我有这段 PHP:

$licensessql = mysqli_query($db_conx, "SELECT * FROM licenses");
while($licenserecord = mysqli_fetch_assoc($licensessql)) {
echo '<input type="checkbox" value="'.$licenserecord["license"].'" name="licenses[]" id="'.$licenserecord["license"].'"><label for="'.$licenserecord["license"].'">'.$licenserecord["license"].'</label><br>';
}

使用纯 PHP 可以将复选框中的所有值放入数组 licences[] 中,但我不知道如何使用 ajax 实现此目的。如果我有 5 个复选框,我希望 javascript var 具有例如值“value1,value2,value3”并将其发布到 PHP。

谢谢!

最佳答案

首先,我建议使用其他答案中发布的表单序列化。

要回答您的实际问题:“如果我有 5 个复选框,我希望 javascript var 具有例如值 'value1,value2,value3' 并将其发布到 PHP。”

这是一个完整的示例(使用 3 个复选框),它将生成一个 javascript 变量,您可以使用该变量传递给 AJAX post 方法以供 PHP 处理。

JSFiddle:https://jsfiddle.net/o5q04vf0/

代码片段:

$(document).ready(function() {
  $('#btnTest').click(function() {
    var checkBoxValues = $("[name=licenses\\[\\]]").map(function() {
      if ($(this).is(':checked')) {
        return this.value;
      }
    }).get().join();

    alert(checkBoxValues);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" value="0" name="licenses[]" />
<input type="checkbox" value="1" name="licenses[]" />
<input type="checkbox" value="2" name="licenses[]" />
<button id="btnTest">Submit</button>

这将帮助您指引正确的方向,但请考虑像其他成员在这里建议的那样,考虑改变通过 AJAX 传递数据的方法。

关于javascript - 如何通过 AJAX 发送 PHP 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36960626/

相关文章:

javascript - 在js中使用<img src>?

javascript - 如何建立链接 - 链接到 DIV?

php - jQuery.AJAX post() - 一些疑问和问题

javascript - 如何循环遍历 UL 中的 LI 项,获取特定属性,并通过 $.ajax 数据传递它们

javascript - 如何将十进制年份值转换为 Javascript 中的日期?

php - 从 MYSQL 数据库创建 JSON 字符串

php - 添加列时 SQL 中的多个 CASE

php - 我在设计过程中忘记了正确的列。可以添加右列吗?

jquery - 阻止 addClass 多次触发

javascript - 使用 html 绘制数据图表