大家好日子,
整天都在搜索如何做到这一点。我想要的是让每一次“点击”进入一个php文件,并确定将采取什么行动。
itemAction.php
include 'inc/database.php';
include 'inc/functions.php';
if ($_GET['action'] == 'delete') {
// do delete action <-- this one is working
} else if ($_GET['action'] == 'edit') {
// do edit action; NOW HERE I WANT TO REDIRECT TO ANOTHER PAGE
header("location: edit.php"); // I can't do something like this. Why?
}
HTML
<div class="action">
<a id="delete" href="itemAction.php" rel="<!--some_id-->"><img src="images/trash.ico" alt="delete"></a>
<a id="edit" href="itemAction.php" rel="<!--some_id-->"><img src="images/Pencil-icon.png" alt="edit"></a>
</div>
JS
$("div.action a#delete").click(function (e) {
var decision = confirm("Are you sure you want to delete the item?");
if (decision) {
e.preventDefault();
$.get('itemAction.php', {action : 'delete', id : $(this).attr("rel")}, function (data) {
location.reload();
alert("Succssfully deleted!");
});
}
return false;
});
$("div.action a#edit").click(function (e) {
e.preventDefault();
$.get('itemAction.php', {action : 'edit', id : $(this).attr("rel")});
});
删除操作似乎正在运行..但我不能在编辑操作中重定向到其他页面。有什么更好的方法可以这样做?任何帮助将非常感激。感谢
答案 0 :(得分:2)
你不能这样做,因为ajax只会发送响应html,text,xml或json响应但不能重定向。
对于重定向,您必须返回任何说"redirectme."
的内容,并根据该响应,您需要在javascript中添加代码以在所需位置重定向。
你能做的是什么?
在php文件中添加以下代码,
echo json_encode(array('status' => 'edit', 'url' => 'edit.php'));
根据上述回复修改您的$.get
response callback
,如下所示。
$.get('itemAction.php', {action : 'delete', id : $(this).attr("rel")},
function (data)
{
if(response.status == 'edit'){
window.location = response.url;
}
});
它只是您需要根据需要设置的指南。
评论回复
如果js被禁用,那么你需要相应地编码。
首先,你需要修改你的html链接,如下所示,
<a id="delete" href="itemAction.php?action=delete&id=someid"
<a id="edit" href="itemAction.php?action=edit&id=someid"
点击上面的链接,使用他们的href属性传递到$.get
,如下所示。
$.get( $(this).href()
通过这样做,js被禁用,你的代码也会起作用。
答案 1 :(得分:0)
让你的按钮去某个地方
<form method="get" action="someScript.php">
<button>Do things</button>
</form>
然后在someScript.php
<?php
// do things
header("Location: redirectToHere.php");