gpt4 book ai didi

php - 需要在 magento 中实时显示用户的选择

转载 作者:行者123 更新时间:2023-11-30 06:44:15 24 4
gpt4 key购买 nike

我正在开发一个 magento 网上商店,其中有一个页面,客户可以在其中选择他/她想要取货的路线。选择是双重的,目前有两组不同的按钮,因此没有复选框或单选按钮。首先,用户选择日期,然后选择地点。

现在我正在调用一个 javascript 函数,该函数在按下按钮时加载一个 cookie,然后重新加载页面并将用户返回到一个 anchor 链接,这样用户就不会在第一次选择时感到困惑。当页面重新加载时,侧边栏包含读取 cookie 内容的 php。这感觉不是很直观,我相信有更好的方法来做到这一点。用户所做的选择应该显示在侧边栏购物车上,这是一个 .phtml 文件。只需一个简单的“你选择了路线 x”就足够了,现在我有一个 echo ,但页面必须先重新加载。

所以简而言之,当用户做出选择时,侧边栏应该更新有关选择的信息,而无需页面自行重新加载并在 anchor 链接的帮助下返回到原位。通知最好位于左侧边栏中。我不认为我想使用弹出窗口或临时通知,但它们可能是一项附加功能。

我很确定这是一个非常简单的问题,但出于某种原因我似乎无法找到正确的关键字,然后是 magento 本身。

最佳答案

好的,这是迄今为止我想出的最好的一个。我仍然认为它只是部分解决了,我认为我可以从 magento 社区获得更多帮助,但目前它运行良好。

将此脚本包含到 custom.phtml header 中:

<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 根目录中的文件夹 routes 中。上面的脚本会自动刷新 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 这样包含。当它们与 View (phtml 文件)文件位于同一文件夹中时包括工作,否则它似乎不起作用。此外,我无法获取从 magento 模板文件中获取 user_needs_to_see_this.php 的脚本。

现在,当客户访问 custom.phtml 页面时,它每 3 秒更新一次。我认为没关系,因为它只是阅读和制作 cookies ,所以没有什么沉重的东西。以后可能会改成onclick。

我得到了代码 here .

还有很多其他类似的例子,但上面的例子似乎涵盖了大部分基础。

关于php - 需要在 magento 中实时显示用户的选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8391049/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com