在我的注册页面上,人们可以通过填写一些输入广告复选框来注册我的网站。它基本上是一种使用 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/