我有一个带有ajax多次删除的探测器。我成功地设置了变量中选中的复选框的值。 我必须解决的问题是如何在php中获取发送数组的值。 这是ajax邮政编码
<script>
$("#delete-btn").click(function(e){
e.preventDefault();
var id = new Array();
$(".check:checked").each(function() {
id.push($(this).attr('value'));
});
$.post("../ajax/multiDelete.php",{id:id},function(data){
alert(data);
});
});
</script>
现在,php页面
<?php
if(isset($_POST['id'])){
$id = array($_POST['id']);
foreach($id as $value){
echo $value;
}
}
?>
当数据被提醒时,我只得到“数组”; 我不知道JSON,所以如果有什么我可以没有它,那么你的帮助非常感谢!谢谢:D
答案 0 :(得分:1)
因为id是一个数组,所以在你的代码中你再次将它包装在一个数组中。而不是那样做,这样做:
<?php
if(isset($_POST['id'])){
// Don't use array($_POST['id']) as id is already an array
$id = $_POST['id'];
foreach($id as $value){
echo $value;
// Here you'll get the array values
}
}
?>
答案 1 :(得分:0)
如果你想从php中恢复数组 - 用户json_encode()
echo json_encode(array($_POST['id']));
P.S。 JS函数alert()不能打印数组或对象。使用console.log(数据),您将在浏览器的开发者控制台中看到结果。
答案 2 :(得分:0)
不要在AJAX中传递数组变量。使用JSON.stringify(id)
将id数组转换为JSON。
在PHP后端,使用
<?php $val = json_decode($_REQUEST['id']);
foreach($val as $ids){
echo $ids;
}
使用$ val数组继续进行php。
答案 3 :(得分:0)
这与你的问题无关,但我只是想告诉你一个更好的方法来获取id
值,而不创建一个新的数组变量,然后使用jQuery {将项目推送到数组中{ {3}}方法: -
$("#delete-btn").click(function (e) {
e.preventDefault();
// Get all the values in the array 'id' variable
var id = $(".check:checked").map(function () {
return this.value || 0;
}).get();
$.post("../ajax/multiDelete.php", { id: id }, function (data) {
alert(data);
});
});
希望这有帮助!
答案 4 :(得分:0)
您必须通过 -
访问您选中的值<?php
if(isset($_POST['id'])){
$id = array($_POST['id']);
foreach($id as $value){
foreach($value as $value1){
echo $value1;
}
}
}
?>
因为这是数组内的数组。