0

我有一个控制器,比如说thingy/stuff目录

<?php public function index() { /*thingy stuff */ }

public function anotherfunction() {/*other thingy stuff*/} ?>

我看到 url 像index.php?route=thingy/stuff&var=dd

我想要的是在该控制器内调用 $.post 到这个函数

所以它使用另一个模板文件thingy.tpl并返回 html 以使用

网址应该是什么?

我搜索了几个小时,听起来好像没有开放式购物车的开发文档

4

2 回答 2

6

假设您在 thingy 文件夹下有一个名为“stuff”的控制器,并在该类中有一个名为“my function”的函数,如下所示:

class ControllerThingyStuff extends Controller {
    public function index() {  
  // Some code
}
public function myfunction() {
// Your code
}
}

如果您想使用 URL 直接与此函数通信,您可以将函数名称添加到路由参数“route=thingy/stuff/myfunction& ...”的末尾,然后在函数内部加载 thingy.tpl 并在之后返回渲染:

// some code
$this->template = 'template/product/thingy.tpl';
...
$this->response->setOutput($this->render());

如果使用的是 open cart 1.5 并且您想使用带有 JSON 的 jQuery AJAX,那么您需要在渲染之前导入 JSON 库:

$this->template = 'thingy/stuff/thingy.tpl';
$json['output'] = $this->render();
$this->load->library('json');
$this->response->setOutput(Json::encode($json));

看看结帐页面以获得一些想法,默认的 open cart 1.5 模板使用相同的技术来加载每个部分的模板。

于 2011-11-02T16:16:13.973 回答
3

如果不是索引,则将其添加到路由中,默认情况下,例如

<?php
class ControllerThingyStuff extends Controller {

    public function index() {
        // This is called with route=thingy/stuff or thingy/stuff/index
    }

    public function something() {
        // This is called with route=thingy/stuff/something
    }
}
于 2011-11-02T15:56:39.393 回答