cakephp - ajax 请求和操作“编辑”不能同时工作

Posted

技术标签:

【中文标题】cakephp - ajax 请求和操作“编辑”不能同时工作【英文标题】:cakephp - ajax request and action 'edit' does not work in simultaneous 【发布时间】:2013-05-18 21:36:56 【问题描述】:

我正在使用 ajax ($this->Js->get) 选择任何下拉列表的元素,然后填充其他下拉列表。但是,我在 form->create('User') 中有这些下拉列表。

所以,如果我使用 form->create(false) 我的操作 'edit' 不起作用...另一方面,如果我使用 form->create('User') 我的 'ajax' 不起作用。

<?php echo $this->Form->create('User', array('action' => 'edit')); ?>
<table>
        <tr>
            <th>PROJECT</th>
            <th>VERSION</th>
        </tr>
          <tr>
            <td>   <?php
                 echo $this->Form->select('projects', array($projects), array('multiple' => false,
                    'class' => 'span2',
                    'id' => 'projectsTest'));
                ?>
            </td>     

            <td> 
                <?php
                echo $this->Form->select('projectversions', array($projectversions), array('multiple' => false, 'class' => 'span2',
                    'id' => 'projectversionsTest'));
                ?>
            </td>
        </tr>
</table> 

<?php echo $this->Form->button('ALTERAR', array('type' => 'submit', 'class' => "btn btn-info pull-right")); ?>


<?php
$this->Js->get('#projectsTest')->event('change', $this->Js->request(array(
            'controller' => 'ProjectVersions',
            'action' => 'getVersionsofProject'
                ), array(
            'update' => '#projectversionsTest',
            'async' => true,
            'method' => 'post',
            'dataExpression' => true,
            'data' => $this->Js->serializeForm(array(
                'isForm' => true,
                'inline' => true
            ))
)));


echo $this->Form->end();
?>

我该如何解决这个问题?

提前感谢:)

【问题讨论】:

我使用的是 2.3。但我正在使用 Js Helper 在“添加”操作中做同样的事情并且它有效:) 【参考方案1】:

这不应该工作吗?

echo $this->Form->create(null, array(
    'url' => array('controller' => 'users', 'action' => 'edit')
));

【讨论】:

不起作用 :( 编辑操作有效,但 js helepr (ajax) 不起作用。它传递的数组 'post' 始终为空。js helper (ajax) 有效,但他不能获取项目的id并通过邮件发送。

以上是关于cakephp - ajax 请求和操作“编辑”不能同时工作的主要内容,如果未能解决你的问题,请参考以下文章

使用 AJAX 和 CakePHP 保存数据

php [cakephp:API组件和控制器]用于ajax请求和Server-Sent事件的Cake模块。 #cakephp

Cakephp 3.4 AJAX 请求抛出 403 禁止错误

PatchEntity 在 Cakephp 3.0 中忽略来自 ajax 请求的数据

CakePHP 中的 Ajax 错误处理

如何在 Cakephp 3 的 ajax 调用中定义 CSRF 令牌。此外,对于某些 ajax 请求,如何关闭 CSRF