我在CakePHP中遇到了AJAX問題。在一個視圖中我有兩種不同的AJAX形式。第一個AJAX表單運行良好,但另一個無法正常工作。當我調用第二個AJAX時,它不會將此表單中的數據設置爲$this->request->data
,但AJAX將正常運行。之後,它將更新<div id="about"></div>
。好奇的是,在div更新後,我嘗試再次通過這個表單發送數據,它可以工作,它會更新我的數據庫中的數據。另外,當我在視圖中只有第二個AJAX時,它將正常工作,並在我通過它發送數據時第一次發送數據。2在同一視圖中的AJAX調用(CakePHP 2.3)
這裏是我的代碼:
這是一個視圖文件:
<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,
));
?>
我也曾在我default.thtml中</body>
前追加<?php echo $this->Js->writeBuffer(); ?>
。
你有什麼想法,哪裏可以成爲問題?謝謝
您可以添加生成的HTML的相關部分嗎?最重要的是由CakePHP生成的JavaScript?我懷疑CakePhp會感到困惑,因爲兩種形式都是爲同一個「模型」生成的,並且可能會得到相同的「id」。爲了解決這個問題,你可以在Form-> create()中手動指定一個id,儘管我不確定生成的Ajax JavaScript會自動選擇它。當然,總是可以選擇手動編寫JavaScript代碼,這會給你更大的控制權 – thaJeztah 2013-02-22 22:58:13
非常感謝您的回覆:)問題出在@AdamTaylor寫道,我沒有附加$ this-> Form- >端();在每個表單的結尾處。 – Johny 2013-02-23 18:51:15