javascript - JavaScript 数组未使用 Ajax 发布到 PHP 文件
问题描述
我有一个 JavaScript 数组,它取自作为复选框的 html 表单。我正在使用 name = "DayChosen[]" 将数据放入一个可以传递给 Ajax 的数组中。当我将数据登录到控制台时,我知道数据正在进入数组,但是在 PHP 页面上它似乎丢失了。我正在尝试收集所选项目并打开一个新页面并将数据发布到此页面。
我试图将其编码为 json,然后用 PHP 对其进行解码,但我一直得到一个空值。我也尝试过使用 JSON,但仍然没有用。
我使用 var_dump 发现我正在返回一个空值。
<form>
<input type = "checkbox" class="CourseDay" name = "DayChosen[]" value = "Legal"><i class="checkbox-pposition DayChosen">Legal Module</i><br>
<input type = "checkbox" class="CourseDay" name = "DayChosen[]" value = "Day 1"/><i class="checkbox-pposition DayChosen">Day 1</i><br>
<input type = "checkbox" class="CourseDay" name = "DayChosen[]" value = "Rodent"/><i class="checkbox-pposition DayChosen">Day 2 Rodent</i><br>
<input type = "checkbox" class="CourseDay" name = "DayChosen[]" value = "Large animal"><i class="checkbox-pposition DayChosen">Day 2 Large animal </i><br>
<input type = "checkbox" class="CourseDay" name = "DayChosen[]" value = "Aquatic"><i class="checkbox-pposition DayChosen">Day 2 Aquatic</i><br>
<input type = "checkbox" class="CourseDay" name = "DayChosen[]" value = "Wildlife"><i class="checkbox-pposition DayChosen">Day 2 Wildlife</i><br>
<select class="Register-Multiple form-control">
<option disabled selected value > -- Select number of Students to Register -- </option>
<?php
for ($x = 1 ; $x <= 10; $x++) {
echo '<option value = '.$x.'>'.$x.'</option>';
}
?>
</select>
<input type="submit" id = "Register" class="col-6 text-center btn btn-primary Register" value="Register">
</form>
<script type="text/javascript">
$('.Register-Multiple').on('change', function (e){
var courses = [];
$("input[type=checkbox]:checked").each ( function() {
courses.push($(this).val());
console.log($(this).val());
});
$.ajax({
type: "POST",
url: '../../wp-content/themes/traffica/Multiple-
registration.php',
data: {courses:courses}, // serializes the form's elements.
success: function(data)
{
console.log(data);
window.open('../../wp-
content/themes/traffica/Multiple-registration.php');
}
});
});
解决方案
您缺少更改功能右括号
请添加 on change 函数的右括号
请添加这些代码并运行它
$('.Register-Multiple').on('change', function (e){
var courses = [];
$("input[type=checkbox]:checked").each ( function() {
courses.push($(this).val());
console.log($(this).val());
});
console.log(courses);
$.ajax({
type: "POST",
url:'sample.php',
data: {courses:courses}, // serializes the form's elements.
success: function(data)
{
console.log(data);
}
});
});
和 php 文件用于获取数组
print_r($_POST['courses']);
推荐阅读
- javascript - 当宽度小于最大宽度时如何包装元素?
- azure - 调用由 AAD 保护的 azure 函数
- python - 在 googlecolab 或 Kaggle 内核上没有检测到
- c# - 由于未知原因在 C# 中使用字符串数组时出现多个运行时异常
- tensorflow - 较大数量的过滤器比 conv2D 层中较少数量的过滤器性能更差
- c++ - C Windows API 确定用户是否处于非活动状态,包括播放媒体
- jquery - Bootgrid 数据行 ID 未定义
- html - Go Template Parse 函数给出错误
- flutter - pub 获取失败(66;在“C:\Windows\System32”中找不到名为“pubspec.yaml”的文件
- flutter - 如何使用 Flutter 创建多色进度条