gpt4 book ai didi

javascript - 我如何使用 JS 和 AJAX 发送数组

转载 作者:行者123 更新时间:2023-11-28 18:31:41 25 4
gpt4 key购买 nike

我有多个输入字段,用户可以在其中填写问题的答案,我使用 JavaScript 将用户输入放入数组中。

当我在 google chrome 中查看控制台日志时,我看到数组将变得正确,之后我想使用 AJAX 将数组发送到另一个 php 页面,以便我可以将数据保存到我的数据库中。

当我检查数据库时,发布结果=“Array”:(

谁能帮我???

//////JavaScript 和 AJAX 代码:

if (isConfirm) {
checkAnswers();
$('input[id="answer"]').each(function() {
allAnswers.push($(this).val());
allAnswers.toString();
});
console.log(allAnswers);
$.ajax({
type: 'post',
url: 'actions/save_questions.php',
data: { 'answers': allAnswers }
});
}

///////PHP 代码:

<?php

$user_answer = $_POST['answers'];
$date = date('d-m-Y h:i:s');

$arr = array($user_answer);

$query = "INSERT INTO made_questions (lesson_id, user_answer, datum) VALUES ('1', '$arr', '$date')";
mysqli_query($conn,$query) or die (mysqli_error($conn));

?>

我的数据库的输出是:

ID:27

类(class) ID:1

user_answer:数组 <----- 这是错误的:(

数据:2016-06-16 08:12:32

控制台日志输出:

["马", "nocleu", "Geel", "这是我的狗", "古腾标签", "太阳", "Aap", "红儿", "knol", "猫"]

谁可以帮助我???

非常感谢!

最佳答案

.toString().join() 不要修改原始变量。您需要说:

allAnswers = allAnswers.toString();

或者

data: {'answers': allAnswers.toString()}

另外

如果您想要值“,”分隔,而不仅仅是“,”,这就是 .toString() 返回的值你可以说:

allAnswers = allAnswers.join(", ");

或者

data: {'answers': allAnswers.join(", ");

重要:

需要注意的是,如果您以这种方式使用 .toString(),您的 .each() 循环将会中断。

损坏

$('input[id="answer"]').each(function(){
allAnswers.push($(this).val());
allAnswers = allAnswers.toString();
});

上面的代码不会工作,因为第一次迭代后,allAnswers将是一个字符串,因此,调用 .push()会抛出异常,因为 .push()不是 string 的函数.

已修复

$('input[id="answer"]').each(function(){
allAnswers.push($(this).val());
});
allAnswers = allAnswers.toString();

此代码通过将值附加到数组之后将数组转换为字符串来解决此问题。

关于javascript - 我如何使用 JS 和 AJAX 发送数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37866826/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com