【发布时间】:2016-10-18 10:07:00
【问题描述】:
我有多个输入字段,用户可以在其中填写问题的答案,我使用 JavaScript 将用户输入放入一个数组中。
当我在谷歌浏览器中查看控制台日志时,我看到数组将被正确处理,之后我想将带有 AJAX 的数组发送到另一个 php 页面,以便我可以将数据保存到我的数据库中。
当我检查我的数据库时,post result = "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
课程编号:1
user_answer: 数组
日期:16-06-2016 08:12:32
控制台日志输出:
[“horse”、“nocleu”、“Geel”、“这是我的狗”、“Guten tag”、“Sun”、“Aap”、“Honger”、“knol”、“Cat”]
谁能帮助我???
非常感谢!
【问题讨论】:
-
一种选择是序列化你的数组stackoverflow.com/a/1256006/4178487
-
$foo = array(); echo $foo将输出文字词Array。您不能在字符串上下文中使用数组,其中包括将该数组填充到 sql 查询字符串中,并且 mysql 无论如何也不做数组。您需要规范化您的数据结构并将每个数组组件插入到子表中。 -
用
allAnswers = allAnswers.join();代替allAnswers.toString(); -
同意,@MarcB OP 将使用逗号分隔的值列表放入数据库的列中。根据用例,很可能应该将其规范化为子表
-
@mhodges,你说得对,我现在正在编辑我的评论 :)
标签: javascript php jquery arrays ajax