我想在点击a时显示自定义提醒,但如果我已登录,我想重定向到另一个页面。我有这个。
<div id="contentCalendar" class="col-md-3 images_1_of_4 text-center">
<a><img onClick="show_alert();" id="rotateme" class="img-responsive img-circle center-block" src="web/images/calendaricon.png"/></a>
<h4><a href="#">Check our last events</a></h4>
</div>
<div id="myalert" class="alert alert-error">
<a href="#" class="close" data-dismiss="alert">×</a>
<strong>Error!</strong> You must be logged in to see our calendar.
</div>
<script>
$('#myalert').hide();
//What happen if you want to enter the events without loggin.
var logged_in = <?php echo ($logged_in); ?>;
function show_alert()
{
if(logged_in==true)
{
window.location="timeline.php";
}
else
{
$('#myalert').show();
}
}
</script>
出于某种原因,当Logged_in为true并且我被重定向时,它就像魅力一样。但是当我退出时,即使我根本没按下按钮,它也不显示警报。
有什么想法吗?
答案 0 :(得分:1)
试试这一行:
var logged_in = <?php echo $logged_in ? 'true' : 'false'; ?>;
答案 1 :(得分:1)
始终,始终,通过json_encode
运行您在JS中嵌入的所有内容:
var logged_in = <?php echo json_encode($logged_in); ?>;
当你在php中只是echo
一个虚假的值时,它就没有回应,从而破坏了你的javascript。
答案 2 :(得分:0)
这假设php代码正确输出布尔值。查看页面源将允许您查看是否正确输出。
现在查看JavaScript代码。
将onclick移动到锚点并取消点击事件
<a href="#" onclick="show_alert(); return false"><img ....
更好的解决方案是转储内联事件处理程序。
不引人注意地附加点击并使用preventDefault取消点击。
HTML:
<a href="timeline.php" class="calendar"><img ....
的JavaScript
var logged_in = <?php echo ($logged_in); ?>;
$("a.calendar").on("click", function (e) {
if(!logged_in) {
e.preventDefault();
$('#myalert').show();
}
});
答案 3 :(得分:-1)
您需要将脚本包装在某种事件中。试试:
$(document).ready(function () {
var logged_in = <?php echo ($logged_in); ?>;
function show_alert()
{
if(logged_in==true)
{
window.location="timeline.php";
}
else
{
$('#myalert').show();
}
}
});