我正在开发一个magento网上商店,其中有一个页面,客户可以选择他/她想要接收订单的路线。选择是双重的,目前有两组不同的按钮,因此没有复选框或单选按钮。首先,用户选择日期然后选择地点。
现在我正在调用一个javascript函数,它在按下按钮时加载一个cookie,然后重新加载页面并将用户返回到一个锚点链接,这样用户就不会在进行第一次选择时感到困惑。当页面重新加载时,侧边栏包含读取cookie内容的php。这感觉不太直观,我相信有更好的方法来做到这一点。用户所做的选择应该显示在侧边栏购物车上,这是一个.phtml文件。只是一个简单的“你选择了路线x”就足够了,现在我有一个回声,但页面必须先重新加载。
因此,简而言之,当用户做出选择时,侧边栏应该更新有关选择的信息,而不会重新加载页面并在锚链接的帮助下返回到位置。通知最好应在左侧边栏中。我认为我不想使用弹出窗口或临时通知,但它们可能是一个额外的功能。
我很确定这是一个非常简单的问题,但由于某些原因,我似乎无法找到合适的关键字,然后就会有magento本身。
答案 0 :(得分:0)
好的这是迄今为止我提出的最好的一个。我仍然认为它只是部分解决了,我想我可以从一个magento社区获得更多帮助,但现在它运作良好。
将此脚本包含在custom.phtml标题中:
<script type="text/javascript">
function AJAX(){
try{
xmlHttp=new XMLHttpRequest(); // Firefox, Opera 8.0+, Safari
return xmlHttp;
}
catch (e){
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer
return xmlHttp;
}
catch (e){
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
return xmlHttp;
}
catch (e){
alert("Your browser does not support AJAX.");
return false;
}
}
}
}
// Timestamp for preventing IE caching the GET request (common function)
function fetch_unix_timestamp()
{
return parseInt(new Date().getTime().toString().substring(0, 10))
}
// Reload div with php
function refreshdiv_timediv(){
var seconds = '3';
var divid = "ajax";
var url = "routes/customer_needs_to_see_this.php";
var xmlHttp_one = AJAX();
// No cache
var timestamp = fetch_unix_timestamp();
var nocacheurl = url+"?t="+timestamp;
// The code...
xmlHttp_one.onreadystatechange=function(){
if(xmlHttp_one.readyState==4){
document.getElementById(divid).innerHTML=xmlHttp_one.responseText;
setTimeout('refreshdiv_timediv()',seconds*1000);
}
}
xmlHttp_one.open("GET",nocacheurl,true);
xmlHttp_one.send(null);
}
// Start the refreshing process
window.onload = function startrefresh(){
setTimeout('refreshdiv_timediv()',seconds*1000);
}
</script>
然后我将customer_needs_to_see_this.php放到www根目录中的文件夹路由中。上面的脚本会自动刷新div“ajax”,而在ajax-div里面有一个php include routes/user_needs_to_see_this.php
。带有include的div位于cart_sidebar.phtml
我不得不将文件放在magento模板文件之外,因为我不能像../template/checkout/customer_needs_to_see_this.php
这样包含。包含与视图(phtml文件)文件位于同一文件夹中的工作,但否则它似乎无法正常工作。此外,我无法让脚本从magento的模板文件中获取user_needs_to_see_this.php
。
现在,当客户在custom.phtml
页面时,它每3秒更新一次。我认为它没关系,因为它只是阅读和制作饼干所以它不重。我可能会在将来改为onclick。
我收到了代码here。
还有很多其他的例子,但上面的例子似乎涵盖了大多数基础。