0

我在 CakePHP 中遇到 AJAX 问题。我在一个视图中有 2 种不同的 AJAX 表单。第一个 AJAX 表单运行良好,但另一个无法正常运行。当我调用第二个 AJAX 时,它不会将此表单中的数据设置为$this->request->data,但 AJAX 会正常运行。之后,它将更新<div id="about"></div>. 奇怪的是,在 div 更新后,我尝试再次通过此表单发送数据,它可以工作,它会更新我在数据库中的数据。此外,当我在视图中只有第二个 AJAX 时,它会正常工作并在我第一次通过它发送数据时发送数据。

这是我的代码:

这是一个视图文件:

<div id="price-list">
    <?php echo $user['User']['price_list']; ?>
</div>

<?php
    echo $this->Form->create('User');
    echo $this->Form->input('User.price_list', array('label' => false));
    echo $this->Js->submit('Save', array(
        'url' => array('controller' => 'users', 'action' => 'ajax_edit_price_list'),
        'update' => '#price-list',
        'buffer' => false,
    ));
?>

<div id="about">
    <?php echo $user['User']['about']; ?>
</div>

<?php
    echo $this->Form->create('User');
    echo $this->Form->input('User.about', array('label' => false));
    echo $this->Js->submit('Save', array(
        'url' => array('controller' => 'users', 'action' => 'ajax_edit_about'),
        'update' => '#about',
        'buffer' => false,
    ));
?>

我之前还附加<?php echo $this->Js->writeBuffer(); ?>了我的 default.ctp </body>

你有什么想法,哪里有问题?谢谢

4

1 回答 1

1

我无法重现您的确切问题,但我想我知道问题所在。您的第二个表单是在第一个表单内创建的。您需要添加echo $this->Form->end();到两个表格的末尾。

此外,表单正在使用相同的 ID 创建。虽然这不是导致问题的原因,但它仍然不好。我建议你听从 thaJeztah 的建议,在里面手动指定一个 ID $this->Form->create()

于 2013-02-23T06:08:47.853 回答