Twitter bootstrap CakePHP将值传递给Bootstrap 2.x模式
我有一个包含“删除”按钮的表。单击“删除”按钮后,将出现一个模式。模式包含一个问题,询问用户是否希望从列表中删除该项。它还包含另一个按钮“是” 我不知道如何将数据传递给modal 已编辑 我的看法是:Twitter bootstrap CakePHP将值传递给Bootstrap 2.x模式,twitter-bootstrap,cakephp,Twitter Bootstrap,Cakephp,我有一个包含“删除”按钮的表。单击“删除”按钮后,将出现一个模式。模式包含一个问题,询问用户是否希望从列表中删除该项。它还包含另一个按钮“是” 我不知道如何将数据传递给modal 已编辑 我的看法是: <tbody> <?php foreach ($docs as $docs) { ?> <tr> <td
<tbody>
<?php
foreach ($docs as $docs) {
?>
<tr>
<td><?php echo $docs['Upload']['type']; ?></td>
<td class ='actions'>
<div class="row">
<div class="col-sm-12 pull-right">
<?php
$uploadDetails = array(
'class' => 'btn btn-primary btn-xs pull-right',
'role' => 'button',
'tabindex' => '-1',
'id' => 'uploadDetails',
'target' => '_blank'
);
$download = array(
'class' => 'btn btn-warning btn-xs pull-right',
'role' => 'button',
'tabindex' => '-1',
'id' => 'downloadButton'
);
$remove = array(
'class' => 'btn btn-danger btn-xs pull-right',
'role' => 'button',
'tabindex' => '-1',
'id' => 'removeButton'
);
?>
<?php
echo $this->Html->link('View Details', array('controller' => 'schools', 'action' => 'uploaddetails', $docs['Upload']['iduploads']), $uploadDetails);
?>
<?php echo $this->Html->link('Remove', '#removeUpload', array('data-toggle' => 'modal', 'data-id' => $docs['Upload']['iduploads'], 'role' => 'button', 'class' => 'btn btn-danger btn-xs pull-right', 'id' => 'removeButton')); ?>
<!--<a href="#removeUpload" role="button" class="btn btn-danger btn-xs pull-right" tabindex="-1" data-toggle="modal" id="removeButton">Remove</a>-->
<?php
echo $this->Html->link('Download', array('action' => 'sendFile', $docs['Upload']['iduploads']), $download);
?>
</div>
</div>
</td>
</tr>
<?php
}
?>
</tbody>
这是我的删除功能:
public function remove(){
$id = $this->request->params['pass'][0];
if(!$id) {
$this->Session->setFlash('Invalid action', 'alert_box', array('class' => 'alert-danger'), 'uploads');
$this->redirect(array('controller' => 'schools', 'action'=>'documents'));
} else {
if($this->Upload->delete($id)) {
$this->Session->setFlash('Selected document has been removed.', 'alert_box', array('class' => 'alert-danger'), 'uploads');
}else {
$this->Session->setFlash('Unable to remove selected document!', 'alert_box', array('class' => 'alert-warning'), 'uploads');
}
$this->redirect(array('controller' => 'schools', 'action'=>'documents'));
}
}
现在发生的是,如果我将鼠标悬停在“是”按钮上,我会在Chrome的左下角看到一条消息:localhost/app/schools/remove/undefined。表中有许多行,只有一个模式。因此,您必须使用javascript在模式中根据单击的行创建删除链接 每行中的链接应类似于:
<?php echo $this->Html->link('Delete', '#modal', array('data-toggle' => 'modal', 'data-id' => $field['Model']['id'])); ?>
因此,我通过使用这段代码以及@PawelMysior的答案成功地实现了这一点 表中每行的链接:
<?php echo $this->Html->link('Delete', '#modal', array('data-toggle' => 'modal', 'data-id' => $field['Model']['id'])); ?>
要检查它是否工作,请将鼠标悬停在模式链接上,您将在浏览器的左下方看到路径
以前我使用@Pawel的jQuery代码时看到:localhost/app/schools/remove/undefined
现在,通过更新后的jQuery,我看到了以下内容:localhost/app/schools/remove/data\u id我不确定“link\u to\u you\u delete\u action/”是什么意思。
<?php echo $this->Html->link('Delete', '#modal', array('data-toggle' => 'modal', 'data-id' => $field['Model']['id'])); ?>
<?php echo $this->Html->link('Delete', '#', array('id' => 'delete')); ?>
$('#modal').on('show.bs.modal', function(e) {
$('#delete').attr('href', 'link_to_you_delete_action/'+$(e.relatedTarget).data('id'));
});
<?php echo $this->Html->link('Delete', '#modal', array('data-toggle' => 'modal', 'data-id' => $field['Model']['id'])); ?>
<?php echo $this->Html->link('Delete', '#', array('id' => 'delete')); ?>
$(document).ready(function(){
$('a[data-toggle=modal], button[data-toggle=modal]').click(function () {
var data_id = '';
if (typeof $(this).data('id') !== 'undefined'){
data_id = $(this).data('id');
}
$('#delete').attr('href', 'link_to_delete_action'+data_id);
})
});