【发布时间】:2020-10-13 16:54:31
【问题描述】:
我想将一个变量从一个 PHP 文件传递到另一个,为此,我正在尝试使用 ajax。现在,在我的“index.php”文件中,我有一个按钮。单击该按钮时,我想将该按钮的 id 传递给另一个 PHP 文件,即“show_schedule.php”。 这是我的 index.php 文件的 ajax 代码:
$(document).on('click', '.show', function(){
var schedule_id = $(this).attr("id");
$.ajax({
url:"show_schedule.php",
method:"POST",
data:{schedule_id:schedule_id},
dataType:"json",
success:function(data)
{
window.location.href = 'show_schedule.php';
}
});
});
这是我的“show_schedule.php”文件:
<?php
session_start();
if(isset($_POST["schedule_id"])){
$s_id = $_POST['schedule_id'];
echo $s_id;
}
?>
data is index.php 由 'fetch.php' 获取并显示,其中,该按钮设置如下:
'<button type="button" name="show" id="'.$row["s_id"].'" class="btn btn-primary btn-sm show">Show</button>';
当我点击这个按钮时,我被重定向到“show_schedule.php”,但变量值没有被传递,即该页面上没有打印任何内容。谁能告诉我我在哪里犯错?任何帮助都会得到帮助。
【问题讨论】:
-
您可以只使用
this.id而不是使用 attr 方法。您是否检查了浏览器网络选项卡中的调用以确保该值正在传递?您还可以使用 var_dump 查看 PHP 端的变量(只需输出到 isset 外部的屏幕或日志/文件。 -
尝试在
var schedule_id = $(this).attr("id");这一行之后使用console.log(schedule_id)。查看id是否显示在控制台上。 -
使用 DevTools 中的 Elements 面板查看
<button>中的id是否填写正确。 -
您的代码完全按照您编写的方式执行。在此行中看到
window.location.href = 'show_schedule.php';您正在重定向到show_schedule.php文件,因此在此之前没有必要进行ajax调用,并且您传递的ID 将在show_schedule.php上收到,但在success: (data)(...}之后您正在重定向进入show_schedule.php,没有任何id。 -
我建议如果
id不敏感,然后在url 中传递它并使用GET方法接收。
标签: javascript php jquery mysql ajax