2

我只想用 jquery 点击复选框来调用 cakephp 动作。我只想通过我想使用 $.get 来刷新当前页面,因为我想将其他变量发送到操作。我尝试了以下代码:

HTML 代码:

<?php $chkOpt = array('pertinence' => $pert, 'onClick' => 'refresh_current_page()', 'id' => 'matchCoche'); ?>

<td class="check-column"><?= $form->checkbox($waiting['ArgusWaitingsMobilesPrice']['brand'] . ';' . $waiting['ArgusWaitingsMobilesPrice']['mobile'] . ';' . $waiting['search']['RefAvatar']['mobile_id'], $chkOpt) ?></td>

Javascript代码:

<script type="text/javascript">
            function refresh_current_page() {
                $('#matchCoche').ready(function() {
                                $.get("<?php echo $this->here ?>");
                });
            }
        </script>

有人可以帮助我吗?

非常感谢您的帮助。

4

4 回答 4

2

我总是使用 Html 助手来制作 url,让我免于麻烦。

<?php 
$this->Js->buffer('
    $(document).ready(function(){
        $('#matchCoche').click(function(){
              $.get("' . $this->Html->url( array('controller' => 'your_controller', 'action' => 'your_action', 'param1', 'param2') ) . '");
        });
    });
'); 

?>

这假设您已加载“Js”助手并具有:

<?php echo $this->Js->writeBuffer(); ?>

在结束正文标记之前的布局中

我觉得使用 Js->buffer 很方便。Js->writeBuffer 将从缓冲区中收集所有片段并处理 $(document).ready 函数。

于 2013-03-13T14:05:40.683 回答
1

更好的使用click事件。不要将它与 HTML 混合 :)

$(document).ready(function(){
    $('#matchCoche').click(function(){
          $.get("http://"+ document.domain +"/yourController/yourAction/param1/param2/");
    });
});

无论如何,如果你只是想用其他参数再次调用页面,为什么不使用普通的 HTML 链接呢?

于 2013-03-13T10:17:23.873 回答
0

如上一个答案中所述,您最好只使用常规链接。您可以通过命名参数发送附加变量:

<a href="/controller/action/id/variable1:value1/variable2:value2" />link</a>
于 2013-03-13T11:04:12.727 回答
0

相关文档可在以下位置找到:

http://book.cakephp.org/view/1096/Using-Helpers如何包含非默认助手 http://book.cakephp.org/view/1589/script使用 1.3.x Html 助手包含脚本 http://book.cakephp.org/view/349/Methods for using the 1.2.x Javascript helper

http://book.cakephp.org/1.3/en/The-Manual/Core-Helpers/Js.html

于 2013-03-13T11:07:59.727 回答