2011-05-03 102 views
0

快捷提問 是否有途徑追加使用CakePHP追加textarea的蛋糕PHP使用Ajax

視圖代碼一個textarea:

<?php echo $ajax->link( 
    $qnote['Qnote']['subject'], 
    array(
     'controller' => 'qnotes', 
     'action' => 'view', $qnote['Qnote']['id'] 
), 
    array('update' => 'Textarea_id') 
); 
?> 

控制器代碼:

function view($id = null) { 
    $this->Qnote->id = $id; 
    $this->set('qnote', $this->Qnote->read()); 

} 

上面的代碼中拉信息但替換文本區域中的整個文本。 有沒有一種方法,我可以附加textarea刪除文本區域中的現有文本

如果可能可以有人指出我在正確的方向請。

回答

0

您可以嘗試將您的AJAX請求的結果保存到隱藏字段,然後讓它執行並在頁面javascript函數中將值從隱藏字段簡單地拍到可見文本區域。

的AJAX輔助讓你指定回調函數,所以東西這應該工作:在查看

<script type="text/javascript"> 
    function concat_fields() { 
    $('#Textarea_id').val($('#Textarea_id').val() . $('#Textarea_id_hidden').val()); 
    } 
</script> 

<?php echo $ajax->link( 
    $qnote['Qnote']['subject'], 
    array(
     'controller' => 'qnotes', 
     'action' => 'view', $qnote['Qnote']['id'] 
), 
    array('update' => 'Textarea_id_hidden', "complete" => "concat_fields()") 
); 
?> 

,然後JavaScript的:我的JavaScript上面的例子假設你正在使用JQuery,如果你不需要更改,就需要進行更改。

+0

是最好的選擇嗎? – Vwake 2011-05-04 05:56:16

+0

那麼Cake的AJAX Helper沒有內置的「附加」功能。由於ajax $ response對象將被傳遞給「完成」回調函數,所以你可能會一起移除「更新」功能,然後你可以從那裏連接。無論哪種方式,您都需要使用頁面JavaScript才能使其工作。 – stevecomrie 2011-05-04 21:47:04