我有一个记录表,其中每一行都有一个删除链接.您会找到用于删除操作的 cakephp :
公共函数删除($id){如果 ($this->request->is('get')) {抛出新的 MethodNotAllowedException();}如果 ($this->Category->delete($id)) {$this->Session->setFlash('Votre élément a été supprimé.','default',array(),'success');返回 $this->redirect(array('action' =>'index'));}}因此,当我单击删除按钮时,会显示一个原始 javascript 确认对话框以确认视图中的删除操作.这是一个包含删除链接的 index.ctp :
<table class="table table-striped table-condensed table-bordered"><tr><th>title</th><th>动作</th></tr><?php foreach ($categorys as $category): ?><tr><td><?php echo $category['Category']['title'];?></td><td><?phpecho $this->Html->link('View',数组('控制器' => '类别', '动作' => '视图', $category['Category']['id']),数组('class' => 'btn btn-info btn-sm active'));?><?phpecho $this->Html->link('编辑', array('action' => 'edit', $category['Category']['id']),数组('class' => 'btn btn-primary btn-sm active'));?><?phpecho $this->Form->postLink('删除',array('action' => 'delete', $category['Category']['id']),array('confirm' => '你真的要删除这个元素吗?','class' => 'btn btn-danger btn-sm active'));?></td></tr><?php endforeach;?><?php unset($category);?>所以对于我想要的后链接,当我点击链接时,它会向我显示一个引导程序确认模式,如下所示:
<div class="modalfade" id="ConfirmDelete" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"><div class="modal-dialog modal-sm"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button><h4 class="modal-title" id="myModalLabel">类别删除</h4><div class="modal-body">你真的要删除这个元素吗?
<div class="modal-footer"><button type="button" class="btn btn-default" data-dismiss="modal">关闭</button><a class="btn btn-danger 危险">确认</a>
谁能帮我使用cake php的jshelper来创建一个引导模式对话框而不是默认的对话框.
谢谢.
我编辑我的答案并改进代码
在您的索引页面上而不是 postLink,创建一个按钮或链接来调用模态,即
Html->link($this->Html->tag('i', '', array('class' => 'glyphicon glyphicon-trash')),'#',大批('class'='btn btn-danger btn-confirm','数据切换'=>'模态','数据目标' =>'#确认删除','数据动作'=>路由器::网址(数组('action'=>'delete',$category['Category']['id'])),'逃脱' =>错误的),错误的);?>在你的模态中添加 postLink 没有确认消息,而不是把消息放在 false:
Form->postLink('确认',数组('动作' => '删除'),array('class' => 'btn btn-danger btn-sm active'),错误的,));?>在bootstrap.js之后添加这段js代码
$(document).ready(function() {$(".btn-confirm").on("click", function () {var action = $(this).attr('data-action');$("form").attr('action',action);});});或者按照user1655410的建议添加这个js代码
$('#ConfirmDelete').on('show.bs.modal', function(e) {$(this).find('form').attr('action', $(e.relatedTarget).data('action'));});hi i have a table of records where there's a delete link for every row.Her you will find cakephp for the delete action :
public function delete($id){
if ($this->request->is('get')) {
throw new MethodNotAllowedException();
}
if ($this->Category->delete($id)) {
$this->Session->setFlash( 'Votre élément a été supprimé.','default',array(),'success');
return $this->redirect(array('action' => 'index'));
}
}
so when i click on the delete button a raw javascript confirm dialog box is diplayed to confirm the action of the deletion in the view. here's an index.ctp containing the delete link :
<!--table content-->
<table class="table table-striped table-condensed table-bordered">
<tr>
<th>title</th>
<th>Actions</th>
</tr>
<?php foreach ($categorys as $category): ?>
<tr>
<td><?php echo $category['Category']['title']; ?></td>
<td>
<?php
echo $this->Html->link('View',
array('controller' => 'categories', 'action' => 'view', $category['Category']['id']),
array('class' => 'btn btn-info btn-sm active')
); ?>
<?php
echo $this->Html->link(
'Edit', array('action' => 'edit', $category['Category']['id']),
array('class' => 'btn btn-primary btn-sm active')
);
?>
<?php
echo $this->Form->postLink(
'Delete',
array('action' => 'delete', $category['Category']['id']),
array('confirm' => 'Do you want really to delete thi element?','class' => 'btn btn-danger btn-sm active')
);
?>
</td>
</tr>
<?php endforeach; ?>
<?php unset($category); ?>
</table>
so for the postlink i want when i click on the link it will show me a bootstrap confirmation modal like this :
<!-- Modal -->
<div class="modal fade" id="ConfirmDelete" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog modal-sm">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="myModalLabel">Category deletion</h4>
</div>
<div class="modal-body">
Do you really want to delete thi element?
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<a class="btn btn-danger danger">Confirm</a>
</div>
</div>
</div>
</div>
can someone help me to use the jshelper of the cake php to create a bootstrap modal dialog instead of the default one.
Thank you.
I edit my answer and improve code
On your index page instead postLink, create a button or link that will call the modal, ie
<?php
echo $this->Html->link(
$this->Html->tag('i', '', array('class' => 'glyphicon glyphicon-trash')),
'#',
array(
'class'=>'btn btn-danger btn-confirm',
'data-toggle'=> 'modal',
'data-target' => '#ConfirmDelete',
'data-action'=> Router::url(
array('action'=>'delete',$category['Category']['id'])
),
'escape' => false),
false);
?>
In your modal add postLink without confirmation message, instead of the message put false:
<?php
echo $this->Form->postLink(
'Confirm',
array('action' => 'delete'),
array('class' => 'btn btn-danger btn-sm active'),
false,
)
);
?>
add this js code after bootstrap.js
$(document).ready(function() {
$(".btn-confirm").on("click", function () {
var action = $(this).attr('data-action');
$("form").attr('action',action);
});
});
or as suggested by user1655410 add this js code
$('#ConfirmDelete').on('show.bs.modal', function(e) {
$(this).find('form').attr('action', $(e.relatedTarget).data('action'));
});
这篇关于引导程序 3 确认删除 cakephp 中的模式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!
不能使用 'Object 作为类名,因为它是保留的Cannot use #39;Object as class name as it is reserved Cake 2.2.x(不能使用 Object 作为类名,因为它是保留的 Cake 2.2.x)
OAuth 重定向后会话丢失Session is lost after an OAuth redirect(OAuth 重定向后会话丢失)
Cakephp 3.x 中的分页排序Pagination Sort in Cakephp 3.x(Cakephp 3.x 中的分页排序)
CakePHP 多个应用程序的共享核心CakePHP Shared core for multiple apps(CakePHP 多个应用程序的共享核心)
在 CakePHP 3 上登录 [ Auth->identify() ] 始终为 falLogin [ Auth-gt;identify() ] always false on CakePHP 3(在 CakePHP 3 上登录 [ Auth-identify() ] 始终为 false)
致命错误:允许的内存大小为 134217728 字节已用尽Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 87 bytes)(致命错误:允许的内存大小为 134217728 字节已用尽