我有一个元素(评论列表和表单)在我的应用程序的许多地方使用。它工作得很好而且很漂亮,除了它需要刷新整个页面。这可能会产生问题,尤其是当它重置您的评论所属的游戏时,会导致所有进度都悲惨地丢失。我对 AJAX 的经验非常有限,那么用添加的注释重新加载元素的最有效、最简单的方法是什么?
这是我的元素:
<?php
/*
set variables:
$data : data of the parent
$type : the type of the parent
$name : (optional)unique name to avoid naming conflicts
*/
if(!isset($name)) {
$name = 0;
}
foreach($data['Comment'] as $comment){
echo '<div class="comment">'.$comment['content'].
' - '.$this->Html->link($comment['User']['username'],array('controller'=>'users','action'=>'view',$comment['User']['id']))
.'</div>';
}
echo $this->Form->create(null, array('url' => '/comments/add','id'=>'qCommentForm'));
echo $this->Html->link('Leave comment','javascript:toggleDisplay("comment'.$name.'")');
echo '<br><div id="comment'.$name.'" style="display:none;">';
echo $this->Form->input('Comment.parent_id', array('type'=>'hidden','value'=>$data[$type]['id']));
echo $this->Form->input('Comment.parent_type', array('type'=>'hidden','value'=>$type));
echo $this->Form->textarea('Comment.content',array('div'=>'false','class'=>'small','label'=>false));
echo $this->Form->submit(__('Leave comment'),array('div'=>'false','class'=>'small'));
echo '</div>';
echo $this->Form->end();
?>
更新
好的,多亏了您的帖子,我对 ajax 有了更多的了解,但我仍然不明白如何以“蛋糕的方式”做到这一点。