Smarty不显示模板
问题描述:
我想为我的网站建立一个菜单并使用Smarty来显示页面。当用户点击Logout选项时,JQuery会向index.php脚本发送一个Ajax调用,该脚本包含Smarty的显示页面的代码,但不会显示它。在我添加菜单之前它工作正常。萤火虫也没有错误。有人能让我走向正确的方向吗?Smarty不显示模板
这里是PHP代码
if (isset($_POST['menu_index']))
{
if ($_POST['menu_index'] == 'Logout')
{
$smarty->display("login.tpl");
exit;
}
}
这里是jQuery代码
$('ul li a').on('click', function() {
var menuItemIndex = $(this).data('val');
console.log(menuItemIndex);
$.ajax({
url: 'index.php',
type: 'POST',
data: {
'menu_index': menuItemIndex
},
dataType: 'json',
success: function(response) {
alert('success');
},
error: function(errorMsg) {
alert('failed');
}
});
});
这里是HTML代码
<form name="mainmenu" id="mainmenu">
<div id='content'>
<div id='jqxMenu'>
<ul>
<li>Maintanence
<ul style='width: 180px;'>
<li><a href="#" data-val="addCategory">Add Category</a></li>
<li><a href="#" data-val="addSubCategory">Add Sub-category</a></li>
</ul>
</li>
<li>Process Order
<ul style='width: 180px;'>
<li><a href="#" data-val="addShipOrder">Ship Order</a></li>
<li><a href="#" data-val="addChangeOrder">Change Order Status</a></li>
</ul>
</li>
<li>Reports
<ul style='width: 180x;'>
<li><a href="#" data-val="addOrderStation">Orders by station</a></li>
<li><a href="#" data-val="addOrderDate">Orders by date</a></li>
<li><a href="#" data-val="addPendingOrder">Pending Orders</a></li>
</ul>
</li>
<li><a href="#" data-val="Logout">Logout</a></li>
</ul>
</div>
</div>
</form>
答
您好我想你不知道如何Smarty的作品,但我可以告诉你,你在html代码中没有任何模板这对于这种编程来说是非常重要的。
你需要作出模板菜单,并调用它menu.tpl - >然后包括它在index.tpl ...
欲了解更多信息看一看www.smarty.net
的'的dataType AJAX请求的''json'。它不会显示一个页面,除非你用重定向代码将'success'中的'alert'替换为你的登录页面。 – Ejaz 2013-04-07 16:24:12
感谢您的回复Ejay。我是这种编程的新手。我该如何发送PHP的成功响应并将其重定向到JQuery中 – Aamer 2013-04-07 16:30:17