javascript - 将 HTMLcollection 发送到数据库
问题描述
所以我有这张表contenteditable
divs
,当用户在 a 中输入内容时,div
他们必须单击一个按钮,该按钮收集所有内容divs
并将它们存储到Var OBJ
.
document.getElementById("done_editing").addEventListener("click", get_values);
var OBJ = [];
function get_values() {
let divobj = document.querySelectorAll('[contenteditable=true]')
for (var i = 0; i < divobj.length; i++) {
OBJ.push(divobj[i].textContent)
//console.log(OBJ)
}
OBJ = OBJ.filter(item => item)
console.log(OBJ)
我想将其中的值发送var OBJ
到数据库。我不知道如何做到这一点。这不是您的平均形式,所以我想我必须使用 ajax,但我没有使用 ajax 的经验。这就是我为ajax 所拥有的。
$.ajax({
type: "POST",
url: "test.php",
data: { arraykey: OBJ },
success: function (response) {
alert('succes')
// You will get response from your PHP page (what you echo or print)
},
error: function (jqXHR, textStatus, errorThrown) {
console.log(textStatus, errorThrown);
}
})
}
任何人都可以为我指出如何使用 ajax 以及如何配置 php 文件的正确方向?
.php 文件:
//Check connection
if($link === false){
die("ERROR: Could not connect. " . mysqli_connect_error());
}
$data = isset($_POST['arraykey']);
if ($data)
{
$array = $_POST["arraykey"];
echo $array;
echo " is your array";
}
else
{
$array = null;
echo "no array supplied";
}
/*$data = isset($_POST['OBJ']);
print_r($_POST);
*/
// close connection
mysqli_close($link);
?>
var_dump($_POST);
返回一个array(0) { }
- 更新:ajax 似乎成功但没有数组传递给 php。
提前致谢 !
解决方案
由于有多个divs
,您可以使用array
它来添加多个值并将其发送到 ajax。
演示代码:
document.getElementById("done_editing").addEventListener("click", get_values);
var OBJ = [];
function get_values() {
let divobj = document.querySelectorAll('[contenteditable=true]')
for (var i = 0; i < divobj.length; i++) {
OBJ.push(divobj[i].textContent); //add in array
}
console.log(OBJ)
//your ajax call
$.ajax({
type: 'POST',
url: 'test.php',
data: {
OBJ: OBJ //pass array to php
},
success: function(data) {
alert("something");
}
});
}
div {
border: 1px solid;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div contentEditable="true"></div>
<div contentEditable="true"></div>
<div contentEditable="true"></div>
<div contentEditable="true"></div>
<button id="done_editing">Done</button>
您的 php 将如下所示:
<?php
// You should call this first
session_start();
$data = isset($_POST['arraykey']);
if ($data)
{
$_SESSION['arraykey'] = $_POST["arraykey"];//putting aray value in session
echo $_SESSION['arraykey'];
echo " is your array";
}
else
{
echo "no array supplied";
}
?>
推荐阅读
- ios - 使用 WSO2 在 IOS 中进行身份验证时出错
- c++ - SDL GPU 为什么在两个单独的 for 循环中对两个图像进行 blitting 更快?
- css - 在响应式图像上定位点
- python - 如何使用 Music21 库将所有 midi 文件转换为通用键(主要和次要)
- c# - C# Picturebox加载的PNG保存与Picturebox背景颜色
- javascript - 将数据循环到 DOM 后如何从 api 捕获数据
- flask - 如何让 pytest 正确提交烧瓶 wtforms 表单
- sublimetext3 - 为晦涩的语言创建 Sublime Text 3 语法
- python - Pandas Dataframe - 系列的真值不明确
- excel - 如何在路径名中不包含当前用户的情况下打开另一个 Excel 文件?