【问题标题】:How to create a link with confirmation dialog using Yii?如何使用 Yii 创建带有确认对话框的链接?
【发布时间】:2011-07-11 21:47:29
【问题描述】:

如何在 Yii 框架中创建带有确认对话框的链接?

假设我有

CHtml::link('Delete',array('wsrecruiteducation/delete','id'=>$model->EducID));

如何在删除数据之前将上面的代码 sn-p 转换为带有确认警报的删除链接?

【问题讨论】:

  • 通过CHtml::link("Delete","#",array("submit"=>array("wsrecruiteducation/delete","id"=>"$val->EducationID"),"confirm"=>"are you sure?"))解决了这个问题,但是在确认删除该项目后如何将用户重定向到同一页面?
  • 对使用垃圾桶图标有什么想法吗?

标签: php yii


【解决方案1】:

你只需要同时使用CHtml::link的最后一个参数:

CHtml::link(
    'Delete',
     array('wsrecruiteducation/delete','id'=>$model->EducID),
     array('confirm' => 'Are you sure?')
);

【讨论】:

  • 已通过 CHtml::link("Delete","#",array("submit"=>array("wsrecruiteducation/delete","id"=>"$val->EducationID "),"confirm"=>"你确定吗?")) 但是在确认删除项目后如何将用户重定向到同一页面?
  • @sasori:在删除数据后从控制器调用redirect。见yiiframework.com/doc/api/1.1/CController#redirect-detail。您还可以将整个事情变成一个 AJAX 请求,以获得更无缝的用户体验。
  • 我知道什么是重定向,并且我一直在我的应用程序的某些区域使用它,但我的问题是,在确认删除后如何在 CHtml::link 中使用 redirect() ? :S
  • @sasori:确认删除后,浏览器将导航到/index.php/wsrecruiteducation/delete/<id>,删除将在此处实际完成。您将从那里重定向。我不太明白这个问题。
  • @sasori:您当然不能从链接内部重定向。 wsrecruiteducation/delete 中的代码需要先运行才能删除数据。那时没有链接了;浏览器已经导航到另一个页面。如果重定向不满意,请考虑使用 AJAX。
【解决方案2】:

你可以这样做:

CHtml::链接( '删除', '#', array('submit'=>array('wsrecruiteducation/delete','id'=>$model->EducID), 'params'=>('returnUrl'=>'controller/action...'), 'confirm' => '你确定吗?') );

returnUrl 将是与请求一起发送的帖子项目,请确保您在具有删除操作的控制器中进行类似操作:

... if(!isset($_GET['ajax'])) $this->redirect(isset($_POST['returnUrl']) ? array($_POST['returnUrl']) : array('admin')); ...

【讨论】:

    【解决方案3】:

    如果您不想删除带有确认对话框的链接,请使用此

    echo CHtml::link("Delete", '#', array(
    'submit'=>array('controller/delete', "id"=>$model->id), 'confirm' => 'Are you sure you want to delete?'));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-27
      • 2016-02-19
      • 1970-01-01
      • 2015-03-16
      • 1970-01-01
      • 1970-01-01
      • 2012-02-18
      • 2015-06-26
      相关资源
      最近更新 更多