我想在我的标签中获取data-id的值并将其传递给PHP变量。
<a data-toggle="modal" data-id="<?=$adminid;?>" href="#view_contact" class="btn btn-info btn-xs view-admin">View</a>
我已经使用下面的javascript获得了data-id的值并将其放入变量中,但它不在页面上发布。
$(document).on("click", ".view-admin", function () {
var adminid = $(this).data('id');
$.post("index.php", {admin_to_pass: adminid});
});
我试过这样做......
print_r($_POST);
但是显示的数组是空的我在这里做错了什么?有点新的。
答案 0 :(得分:1)
如果您尝试在同一页面上发帖(无论如何这都是个坏主意),您应该在该PHP catch块上始终有exit/die;
,并在{ {1}}。
示例:
模拟JS:
$.post
这里是PHP(同一页面):
<?php $adminid = 1; ?>
<a data-toggle="modal" data-id="<?=$adminid;?>" href="#view_contact" class="btn btn-info btn-xs view-admin">View</a>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).on("click", ".view-admin", function () {
var adminid = $(this).data('id');
$.post("index.php", {admin_to_pass: adminid}, function(response){
console.log(response);
});
});
</script>
或者
if($_SERVER['REQUEST_METHOD'] == 'POST') {
echo json_encode($_POST['admin_to_pass']);
exit; // this is important
}
因为在你当前的代码中你没有,你需要成功的回调函数来处理来自服务器的响应:
if(isset($_POST['admin_to_pass'])) {
echo json_encode($_POST['admin_to_pass']);
exit; // this is important
// you must have this or you'll catch the whole document
}