2011-05-03 71 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