【问题标题】:Dialog Box with Views in it - CakePHP带有视图的对话框 - CakePHP
【发布时间】:2023-04-02 20:46:01
【问题描述】:

当我点击页面上的示例链接按钮时,会弹出一个简单的对话框。我想要做的是将 onclick jquery 函数从链接更改为我表中的一个按钮。这些按钮当前将 Web 浏览器定向到新页面,但我希望它们打开带有相应视图文件的对话框。我正在使用 CakePHP 2.x。 我研究过使用 href 但我不知道该怎么做。

这是按钮所在的 index.ctp 文件的代码。

<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/themes/start/jquery-ui.css" type="text/css" media="all" />

<a href="#">link</a>   <!-- this is to test if the dialog box works -->
<div id="dialog"></div>

<script>
var p = '<p>test test test test test test</p>';
$('#viewButton').click(function()
{
//  $(location).attr('href', 'view.ctp');  // not sure if this line of code is on the right track or not
    $(p).dialog(
    {
        width: 400,
        height: 400,
        modal: true,
        resizable: true,
        buttons:{
            OK: function(){
                $(this).dialog("close");}}
    });
})
</script>

<p><marquee><u>Local Clocks</u></marquee></p>

<table>
    <thead><tr>
        <th>Id</th>
        <th>Name</th>
        <th>Actions</th>
    </tr></thead>
<tbody>

<?php 
foreach($localClocks as $LocalClock) { ?>

<tr>
    <!-- <td><?php //echo $LocalClock['LocalClock']['id']; ?></td> -->
    <td><?php echo $this->Html->link($LocalClock['LocalClock']['id'], array('controller'=>'localClocks', 
    'action'=>'view', $LocalClock['LocalClock']['id'])); ?></td> 

    <td><?php echo $LocalClock['LocalClock']['name']; ?></td>

<td><input type="button" class="viewButton" value="View" onclick="location.href='<?php echo $this->Html->url(array('controller' => 'localClocks', 'action' => 'view', $LocalClock['LocalClock']['id'])); ?>';"/>
<input type="button" class="editButton" value="Edit" onclick="location.href='<?php echo $this->Html->url(array('controller' => 'localClocks', 'action' => 'edit', $LocalClock['LocalClock']['id'])); ?>';"/>
    </td>
</tr>

<?php } ?>

</tbody>
</table>

我需要帮助将按钮 onclick 事件切换为打开对话框并让对话框显示相应的视图页面。

提前致谢

【问题讨论】:

    标签: jquery html cakephp hyperlink dialog


    【解决方案1】:

    这就是我能够做到这一点的方法。我希望它可以帮助其他人。

    首先将空白 div 添加到带有 id 的索引页面中。

    <div id="view_dialog"></div>
    

    然后,使用 jQuery 创建一个函数,从该 div 中创建一个对话框。

        <script>
    $(function()
    {
        var $dialog = $("#view_dialog").dialog(
            {
                autoOpen: false,
                title: 'View Local Clock',
                height: 200,
                width: 1200,
                resizable: true,
                modal: true,
                buttons:
                {
                    "Ok": function()
                    {
                        $(this).dialog("close");
                    }
                }
            });
        $(".view_dialog").click(function()
        {
            $dialog.load($(this).attr('href'), function ()
                    {
                        $dialog.dialog('open');
                    });
            return false;
        });
    });
    </script>
    

    最后,创建按钮/链接。

    <?php echo $this->Html->link('View', array('action' => 'view', $LocalClock['LocalClock']['id']), array('class' => 'view_dialog')); ?>
    

    当我单击在对话框中显示该项目的特定信息的视图链接时,此代码允许我打开一个对话框。

    【讨论】:

      猜你喜欢
      • 2022-06-28
      • 2011-09-19
      • 1970-01-01
      • 2011-09-29
      • 2019-08-07
      • 1970-01-01
      • 1970-01-01
      • 2016-06-19
      • 1970-01-01
      相关资源
      最近更新 更多