Javascript 如何将数组中多个1元素的值从ajax传递到PHP?
实际上,我通过一个循环和一个数组得到了相同id的按钮的值,我想把这些值从ajax传递到php,但问题是它只显示最后一个元素的值Javascript 如何将数组中多个1元素的值从ajax传递到PHP?,javascript,php,ajax,Javascript,Php,Ajax,实际上,我通过一个循环和一个数组得到了相同id的按钮的值,我想把这些值从ajax传递到php,但问题是它只显示最后一个元素的值 function remove() { var elms = document.querySelectorAll("[id='botn']"); for (var i = 0; i < elms.length; i++) var datastring=elms[i].value;
function remove() {
var elms = document.querySelectorAll("[id='botn']");
for (var i = 0; i < elms.length; i++)
var datastring=elms[i].value;
console.log(datastring);
$.ajax({
url: 'php/del_beacon.php',
type: 'post',
data: {data:datastring},
success: function(response) {
}
});
}
函数删除(){
var elms=document.queryselectoral(“[id='botn']”);
对于(变量i=0;i
当我使用alert(elms[i].vlaue)时,它会显示所有选定按钮的值
这是我的php文件
<?php
$servername="localhost";
$username="root";
$password="";
$dbname="beelist";
$conn=mysqli_connect($servername,$username,$password,$dbname);
error_reporting(0);
$connDB= mysqli_select_db($conn,'beelist');
$myArray = $_POST['data'];
echo $myArray;
?>
您在datastring变量中只存储了一个值,因为它是一个字符串变量
for (var i = 0; i < elms.length; i++)
var datastring = elms[i].value;
您在datastring变量中只存储了一个值,因为它是一个字符串变量
for (var i = 0; i < elms.length; i++)
var datastring = elms[i].value;
您只获得最后一个元素,因为每次执行循环时都要重新分配该值 您需要使用
push
方法
var data.push(elms[i].value);
您只获得最后一个元素,因为每次执行循环时都要重新分配该值 您需要使用
push
方法
var data.push(elms[i].value);
因为您将通过ajax获取选定数据的所有值。php就是您遇到问题的地方。在php代码中,您没有指定要对发布的数据执行什么操作,如插入、更新或删除操作 无论如何,在php中,您将需要按照下面的代码循环浏览发布的数据
foreach($myArray as $pid){
echo $pid;
}
下面的代码假设您希望循环浏览发布的数据,以根据posts\U id从posts表中删除记录
<?php
$servername="localhost";
$username="root";
$password="";
$dbname="beelist";
$conn=mysqli_connect($servername,$username,$password,$dbname);
error_reporting(0);
$connDB= mysqli_select_db($conn,'beelist');
$myArray = $_POST['data'];
//loop through your post and then insert or delete or update records
foreach($myArray as $pid){
// Delete record
$query = "DELETE FROM posts WHERE id=".$pid;
mysqli_query($con,$query);
echo $pid;
}
?>
如果您仍然面临任何问题,请告诉我。因为您正在通过ajax获取选定数据的所有值。php就是您遇到问题的地方。在php代码中,您没有指定要对发布的数据执行什么操作,如插入、更新或删除操作 无论如何,在php中,您将需要按照下面的代码循环浏览发布的数据
foreach($myArray as $pid){
echo $pid;
}
下面的代码假设您希望循环浏览发布的数据,以根据posts\U id从posts表中删除记录
<?php
$servername="localhost";
$username="root";
$password="";
$dbname="beelist";
$conn=mysqli_connect($servername,$username,$password,$dbname);
error_reporting(0);
$connDB= mysqli_select_db($conn,'beelist');
$myArray = $_POST['data'];
//loop through your post and then insert or delete or update records
foreach($myArray as $pid){
// Delete record
$query = "DELETE FROM posts WHERE id=".$pid;
mysqli_query($con,$query);
echo $pid;
}
?>
如果您仍然面临任何问题,请告诉我。在您的代码中,您试图做的是
var datastring = elms[i].value; // Your problem is here
在这里,您每次都要声明datastring,因此您得到的是数据中的最后一个值。相反,您可以在数组中推送值,然后将数组转换为JSON,然后通过ajax调用将其发送到php,如下所示
function remove(){
var elms = document.querySelectorAll("[id='botn']");
var datastring = [];
for (var i = 0; i < elms.length; i++)
{
datastring.push(elms[i].value);
console.log(datastring);
}
var myData = JSON.stringify(datastring);
$.ajax({
url: 'php/del_beacon.php',
type: 'post',
data: {data:myData},
success: function(response) {
}
});
}
函数删除(){
var elms=document.queryselectoral(“[id='botn']”);
var-datastring=[];
对于(变量i=0;i
然后在php代码中,您可以通过php中的json_decode()函数再次将json转换为数组
var datastring = elms[i].value; // Your problem is here
在这里,您每次都要声明datastring,因此您得到的是数据中的最后一个值。相反,您可以在数组中推送值,然后将数组转换为JSON,然后通过ajax调用将其发送到php,如下所示
function remove(){
var elms = document.querySelectorAll("[id='botn']");
var datastring = [];
for (var i = 0; i < elms.length; i++)
{
datastring.push(elms[i].value);
console.log(datastring);
}
var myData = JSON.stringify(datastring);
$.ajax({
url: 'php/del_beacon.php',
type: 'post',
data: {data:myData},
success: function(response) {
}
});
}
函数删除(){
var elms=document.queryselectoral(“[id='botn']”);
var-datastring=[];
对于(变量i=0;i
然后,在php代码中,您可以使用datastring.push(elms[i].value),通过php中的json_decode()函数再次将json转换为数组;值仍然没有显示。它显示的是元素总数。。。。。。当我使用这个方法时,输出是8,这是
console.log(datastring)输出的元素总数代码>?或者在PHP中?console.log(datastring)中的输出是(8)[“信标1”、“信标2”、“信标3”、“信标4”、“信标5”、“信标6”、“信标7”、“信标8”],在PHP中的输出是“数组”,这很好,这意味着数据收集正确。现在,做一个var\u转储($\u POST)在PHP中查看返回的数组数据的外观。我怀疑您没有正确地遍历它,需要使用datastring.push(elms[I].value)查看$\u POST['data']['data']
;值仍然没有显示。它显示的是元素总数。。。。。。当我使用这个方法时,输出是8,这是console.log(datastring)输出的元素总数代码>?或者在PHP中?console.log(datastring)中的输出是(8)[“信标1”、“信标2”、“信标3”、“信标4”、“信标5”、“信标6”、“信标7”、“信标8”],在PHP中的输出是“数组”,这很好,这意味着数据收集正确。现在,做一个var\u转储($\u POST)在PHP中查看返回的数组数据的外观。我怀疑您没有正确地遍历它,需要使用datastring.push(elms[I].value)查看$\u POST['data']['data']
@masivuye;值仍然没有显示。它显示的是元素总数。。。。。。当我使用这个方法时,输出是8,这是总的element@masivuye使用datastring.push(elms[i].value);值仍然没有显示。它显示的是元素总数。。。。。。当我使用这个方法时,输出是8,这是元素的总数发布你所有的代码ajax、php和html让我看看它们都有问题我自己做的查询中有一个问题…再次非常感谢champ!发布你所有的代码——ajax、php和html——让我看看它们——查询中有一个问题,我自己做的……谢谢