Javascript 在opencart订单历史记录中显示产品名称

Javascript 在opencart订单历史记录中显示产品名称,javascript,php,opencart,Javascript,Php,Opencart,在我的网站上,在订单历史记录(我的账户/订单历史记录)上显示产品名称是非常重要的,而在opencart中,只有显示的订单id。我已经部分解决了这个问题,但是我非常希望得到一些如何继续的提示。 该主题曾于2011年在北京开幕 主要问题是文件order\u list.tpl无权访问controller order.php中的$product['name'](其定义在function info()中,而不是function index()),只有order\u info.tpl有权访问。我试图将部分代

在我的网站上,在订单历史记录(我的账户/订单历史记录)上显示产品名称是非常重要的,而在opencart中,只有显示的订单id。我已经部分解决了这个问题,但是我非常希望得到一些如何继续的提示。 该主题曾于2011年在北京开幕

  • 主要问题是文件order\u list.tpl无权访问controller order.php中的
    $product['name']
    (其定义在
    function info()
    中,而不是
    function index()
    ),只有order\u info.tpl有权访问。我试图将部分代码从函数info()复制到函数index(),但它仍然无法访问该函数。有什么提示我该做什么吗?我是否需要更改模型文件中的某些内容?或者如何修改控制器文件(order.php)以允许order_list.tpl具有正确的访问权限
  • 我尝试过的一种方法是在新div中的order_list.tpl上使用javascript呈现内容order_info(如中所述),但是作为js中的新手,我无法修改它以在页面加载后立即打开(而不是在moveover上)。在加载其他一些鼠标之前,我尝试将鼠标移到load,但没有成功

    如果您能提供任何帮助或提示,我们将不胜感激

    谢谢您的帮助,cske,我非常感谢。然而,我仍然无法使它工作。我还尝试了一些小的调整,但没有成功(但我不是js开发者)

    $(function () {
      $(".order-info a").each(function () {
        var $me  = $(this);     
        $me.load($me.attr('href'),function(){ 
                $me.addClass("unloaded");
        };      
    });
    
    因此,我决定再次尝试修改控制器文件,使
    $product['name']
    可以访问
    order\u list.tpl
    (如问题中所述)。我可以通过添加

     $products = $this->model_account_order->getOrderProducts($result['order_id']);
    

    之后

    foreach ($results as $result) {
    
    这使得在orders数组中调用它成为可能

    $this->data['orders'][] = array(
    'product_name'       => $product['name'],
    
    不过,这是一个可行的解决方案: 1.每个订单只显示一个产品 2.它引起注意

    Notice: Undefined index: order_id 
    
    该通知可以在管理区关闭


    我同意这个解决方案,但显然它可能不是其他商店的正确解决方案。

    我使用只显示订单的第一个产品的解决方案,以了解如何显示订单的所有产品及其数量

    而不是:

    foreach ($products as $product) {
        $this->data['products'][] = array('name'=> $product['name'],);
    }
    
    使用:

    加:

    然后,在order_list.tpl中,您可以获得包含以下数量的产品列表:

    <?php echo $order['product_data']; ?>
    
    
    
    foreach ($products as $product) {
        $this->data['products'][] = array('name'=> $product['name'],);
    }
    
    $this->data['products'] = array();
    $prod = "";
    
    foreach ($products as $product) {
        $prod .= $product['quantity'] . " x " . $product['name'] .'<br>';
    }
    
    $this->data['orders'][] = array(
    
    'product_data' => $prod,
    
    <?php echo $order['product_data']; ?>