gpt4 book ai didi

yii - 如何在 _view 文件中的 CViewList 小部件中创建 ajax 删除链接

转载 作者:行者123 更新时间:2023-12-02 05:39:17 36 4
gpt4 key购买 nike

CGridView 小部件已经具有查看、更新、删除选项。但我在基于 jquery 移动的项目中使用 CListView 小部件,但在为删除选项创建 ajax 链接时遇到问题。不知道如何在 _view.php(查看文件)及其 renderPartial() View 文件中创建一个 ajax 删除链接,以便在成功删除后让栏消失,请提前致谢。这是用于编辑和删除的 _view.php 文件链接。

<?php 
echo CHtml::link(CHtml::encode($data->id),
array('editmember1', 'id' => $data->id),
array('data-role' => 'button', 'data-icon' => 'star')
);

echo CHtml::link(CHtml::encode($data->id), $this->createUrl('customer/delete', array('id' => $data->id)),
array(
// for htmlOptions
'onclick' => ' {' . CHtml::ajax(array(
'beforeSend' => 'js:function(){if(confirm("Are you sure you want to delete?"))return true;else return false;}',
'success' => "js:function(html){ alert('removed'); }")) .
'return false;}', // returning false prevents the default navigation to another url on a new page
'class' => 'delete-icon',
'id' => 'x' . $data->id)
);

?>

最佳答案

这是因为:

  1. 没有调用正确的操作,因为您还没有设置 jQuery.ajax()url 属性.你应该知道 Yii 的 CHtml::ajax 是建立在 jQuery 的 ajax 之上的。所以你可以添加:

    CHtml::ajax(array(
    ...
    'url'=>$this->createUrl('customer/delete', array('id' => $data->id,'ajax'=>'delete')),
    ...
    ))

    我还在 url 中传递了一个 ajax 参数,以便该操作明确知道它是一个 ajax 请求。

  2. 然后默认情况下 Controller 操作(即 Gii 生成的 CRUD)期望请求是 post 类型,你可以在 customer/delete 操作行中看到:if(Yii::app() ->request->isPostRequest){...}。所以你必须发送一个 POST 请求,再次修改 ajax 选项:

    CHtml::ajax(array(
    ...
    'type'=>'POST',
    'url'=>'',// copy from point 1 above
    ...
    ))
  3. 或者您也可以使用 CHtml::ajaxLink() .

  4. 要在删除后更新 CListView,请调用 $.fn.yiiListView.update("id_of_the_listview");。像这样的东西:

    CHtml::ajax(array(
    ...
    'type'=>'POST',
    'url'=>'',// copy from point 1 above
    'complete'=>'js:function(jqXHR, textStatus){$.fn.yiiListView.update("mylistview");}'
    ...
    ))

关于yii - 如何在 _view 文件中的 CViewList 小部件中创建 ajax 删除链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11239018/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com