我有这个div我用作一种按钮,大部分时间,我只是用它来重定向到另一个页面,但这一次,我希望它在重定向到下一页之前运行一些php
<div class="build_detail_option_ele_wrap" onclick="location.href="builders_checkout.php";"></div>
我可以将它重定向到builders_checkout.php,这会创建一些会话等......然后从那里重定向到结束页面。
(我知道通过使用提交按钮可以更容易地做到这一点,但情况意味着我不能在这里使用。)
这是一个好主意,还是有消极的做法?
由于
答案 0 :(得分:2)
它没有“错误”,但如果您使用<a href="...">
标记,则可以获得更好的结果(可选地,设置style="display:block"
使其行为类似于<div>
)。
如果您坚持使用<div>
,请在builders_checkout.php
字符串周围使用单引号。
答案 1 :(得分:2)
在您的网址上传递一个查询字符串,其中包含您应该在该脚本之后重定向的网页。我使用了下一步。
... builders_checkout.php?next=lol_page.php ...
在builders_checkout.php
中,在脚本的末尾使用类似的内容:
// if next is set, we will redirect it to next value (lol_page.php);
if(isset($_GET['next'])){
header('Location: ' . $_GET['next']);
}
如果您有任何疑问或问题需要了解,请问。
答案 2 :(得分:2)
因为没有人真正给出(明显的)解决方案:
<a class="build_detail_option_ele_wrap" href="builders_checkout.php"></a>
将此添加到您的CSS中,它不会明显不同:
a.build_detail_option_ele_wrap {
text-decoration: none;
color: inherit;
display: block;
}
答案 3 :(得分:1)
好吧,使用jQuery(甚至普通JS)而不是onclick=""
来实现它。当然,使用<a href="">
代替div
到目前为止,没有问题。只需确保让用户知道它正在使用加载栏进行处理。
答案 4 :(得分:1)
您是否建议应该正常工作,但是您需要将onclick
declration中的双引号更改为单引号,如下所示:
<div class="build_detail_option_ele_wrap" onclick="location.href='builders_checkout.php';"></div>
如果你想获得更高级的功能,你可以看看使用AJAX方法将你需要的数据发送到PHP脚本,然后只有你成功完成脚本需要做的事情(或者甚至有那个脚本)时重定向返回一个字符串,指示浏览器应该重定向到的位置。)
答案 5 :(得分:1)
如果我认为你是对的,你可能会考虑使用AJAX。
jQuery使这很简单:
$(".build_detail_option_ele_wrap").on('click', function () {
// Do your $_SESSION (or other) stuff
$.get('builders_checkout.php', function () {
// after the $.get has completed:
window.location.href = 'lol_page.php';
})
});
你的DIV:
<div class="build_detail_option_ele_wrap"></div>
这样,您可以异步运行“builders_checkout.php”,然后加载“lol_page.php”URL,而不必重定向两次。