CakePHP 1.3 - 使用js helper将非表单数据发送到控制器

时间:2013-11-05 20:42:31

标签: ajax jquery cakephp-1.3

我的视图中有一系列动态按钮,如下所示:

<ul id="dashboard_list">
  <li id="id_100" class="btn btn-primary">
    <a id="id_100" href="/plugin_name/controller_name/action_name/100">Default View</a>
  </li>
  <li id="id_200" class="btn btn-primary">
    <a id="id_200" href="/plugin_name/controller_name/action_name/200">Second View</a>
  </li>
  <li id="id_300" class="btn btn-primary">
     <a id="id_300" href="/plugin_name/controller_name/action_name/300">Third View</a>
  </li>
</ul>

以上链接是使用JSHelper创建的,如下所示:

echo $this->Html->link($view->name, '/plugin_name/controller_name/action_name/'. $view->id, array('class' => 'ajax-link', 'id'=> $view->id));

我正在使用我在研究时发现的以下脚本:

// onClick function
function onClick(){
    $('#view_container').load($(this).attr('href'), onSuccess); 
    return false;
}

// activate ajax links to call the onClick function
$('.ajax-link').live('click', onClick);

// onSuccess-callback function
function onSuccess(){}

现在,在我的控制器/操作中,我按如下方式对数据进行简单检查:

function actionName() {
    if ($this->data != null) {
        die('We has data!');
    }
    else
    {
        die('We has no data.');
    }
}

我的#view_container元素在每次点击时都会正确更新“我们没有数据”。所以,我显然没有在视图和控制器之间传递链接的视图ID号(数据)。

任何人都可以就如何在CakePHP 1.3中实现此功能来访问控制器中所选的id(变量)吗?我似乎主要找到表单提交示例(或只是死链接),我很遗憾没有选择升级cakePHP。

仅供参考:正在包括正确的助手,脚本和js-&gt; writeBuffer。

感谢您提前做出任何回复!

1 个答案:

答案 0 :(得分:0)

重写您的功能如下:

function actionName($id) {
    debug($id);
    if ($this->data != null) {
        die('We has data!');
    }
    else
    {
        die('We has no data.');
    }
}

如果您需要在URL ex中执行多个变量:

href="/plugin_name/controller_name/action_name/300/yellow/bannana"

然后你的功能看起来像:

function actionName($id,$color,$fruit) {
}