Php Ajax没有';提示时,不要执行新请求
我仍在学习Ajax,每次我想使用Ajax更改页面内容时,我都会使用以下脚本:Php Ajax没有';提示时,不要执行新请求,php,ajax,Php,Ajax,我仍在学习Ajax,每次我想使用Ajax更改页面内容时,我都会使用以下脚本: function load_page(id) { $.ajaxSetup({ cache: false }); var toId = ""; $('#ajax-intro-body').show(); if (id == "dashboard") toId = "../src/pages/partials/" + id + ".php"; else
function load_page(id)
{
$.ajaxSetup({ cache: false });
var toId = "";
$('#ajax-intro-body').show();
if (id == "dashboard")
toId = "../src/pages/partials/" + id + ".php";
else
toId = "../src/pages/" + id + ".php";
$.ajax({
url:toId,
method:"POST",
cache: false,
headers: { "cache-control": "no-cache" },
data:{},
success:function(data)
{
if (data == "session_expired"){
location.replace("../src/pages/login/")
}else{
// Show output data
$('#ajax-content').html(data);
// Set refresh address id
$('.refresh-content').attr('id',id);
// Fade out the loading bar body
$('#ajax-intro-body').fadeOut(100);
// Remove animation from sync
$('#refresh-icon').removeClass("fa-spin");
}
}
});
}
所以我认为代码很容易理解。现在我得到了一个“项目页面”,您也可以在其中删除它,这个页面正在使用上面的脚本加载,我得到了以下php代码:
if ($_SERVER['REQUEST_METHOD'] === 'GET') {
if (isset($_GET['id'])){
$("#dialog-3").dialog({
autoOpen: false,//remove this and the click to aut open
bgiframe: true,
width: 340,
modal: true,
resizable: false,
buttons: {
"Delete":function(){
$(this).dialog("close");
$.ajax({
type: "POST",
url: "../src/requests/deleteproject.php",
data: {
id: <?php echo $projectid; ?>,
flag: true,
},
success: function (data) {
load_page('projects/listprojects');
}
});
},
Cancel: function() {
$(this).dialog("close");
}
}
});
}
}
if($\u服务器['REQUEST\u METHOD']='GET'){
如果(isset($_GET['id']){
$(“#dialog-3”).dialog({
autoOpen:false,//删除此项并单击以自动打开
bgiframe:是的,
宽度:340,
莫代尔:是的,
可调整大小:false,
按钮:{
“删除”:函数(){
$(此).dialog(“关闭”);
$.ajax({
类型:“POST”,
url:“../src/requests/deleteproject.php”,
数据:{
id:,
旗帜:是的,
},
成功:功能(数据){
加载页面(“项目/列表项目”);
}
});
},
取消:函数(){
$(此).dialog(“关闭”);
}
}
});
}
}
所以你可以看到,如果我想删除它,我正试图在项目页面中执行和ajax请求。使用browser network(浏览器网络)选项卡,我可以看到,当我调用项目页面时,GET参数id实际上被更改为正确的号码,但实际上它没有更新idid:,
。我已经读到,我需要在ajax请求中将缓存设置为false,但它似乎不起作用,因此我无法更新Id
你们知道吗?谢谢大家! 您确定可以像这样混合使用js和php代码吗?php代码似乎是用于GET请求的,但您的ajax方法是POST。这是实际的PHP还是只是从中提取的缺少重要部分?@u_mulder是的,你可以这样做。@RamRaider你也对,我使用POST请求修复并设置了所有内容,但问题仍然存在,我认为您的解决方案是正确的,但ID更改的唯一时刻是我使用CTRL+R刷新页面时。否则,如果我删除一个项目,然后创建一个新项目,该页面仍然指向删除上一个项目。我还执行了一些测试,使用新ID设置隐藏输入,但由于某些原因,它似乎可以工作从第二次开始,我无法使用php将ID动态分配给JS。