使用article_id按钮打开对话框

时间:2014-11-18 11:52:32

标签: javascript php jquery dialog

目前我正在为我的文章设置一个管理面板,其中包含一些快速操作(在这种情况下,删除文章)。一旦我点击垃圾桶,就会打开一个对话框并要求我承认删除。它应该基于article_id打开相同的对话框。我不太了解JavaScript(除了noobie的东西)。

部分PHP foreach代码:

foreach ($show_articles as $blog):
    echo "<div class='blog_articles_bottom_container'>";
        echo "<div class='blog_articles_bottom_title'>".$blog['title']."</div>";
        echo "<div class='blog_articles_bottom_date'>".date('j-m-Y, H:m', $blog['created_at'])."u</div>";
        echo "<div class='blog_articles_bottom_comments'>".$amount_comments['total']."</div>";
        echo "<div class='blog_articles_bottom_likes'>".$amount_likes['total']."</div>";
        echo "<div class='blog_articles_bottom_actions'>";
            echo "<div id='article_edit' class='blog_articles_bottom_actions_edit'></div>";
            echo "<div id='btn-article-remove-dialog-".$blog['article_id']."' class='blog_articles_bottom_actions_remove'></div>";
            echo "<div id='article_settings' class='blog_articles_bottom_actions_settings'></div>";
            echo "<div id='clear'></div>";
        echo "</div>";
        echo "<div id='clear'></div>";
    echo "</div>";
endforeach;

如您所见,删除按钮具有以下ID:#id ='btn-article-remove-dialog - “。$ blog ['article_id']。”成功输出:第一篇文章的id ='btn-article-remove-dialog-1“。

这是对话部分:

<div id="blog_articles_dialog-" class="blog_articles_dialog" title="Confess deletion">
Are you sure you want to delete </b>'".$blog['title']."'</b> ?
</div>

这是JavaScript部分:

$(document).ready(function(){
    $( "#blog_articles_dialog-"+article_id).dialog({ autoOpen: false, resizable: false, draggable: false, closeOnEscape: true, dialogClass: "alert-dialog", width: "380", modal: true });
    $( "#blog_articles_dialog-"+article_id).dialog({ hide: { effect: "clip", direction: "vertical", duration: 350 } });

    $( "#btn-article-remove-dialog-"+article_id).click(function(article_id) {
        $( "#blog_articles_dialog-"+article_id).dialog( "open" );
        console.log(article_id);
    });
});

我的问题如下:我该如何存档?它当前在我的控制台日志中回显了'未捕获的ReferenceError:article_id未定义'。试图解决这个问题,但正如我所说,我是一个nooblet。

由于

编辑#1(@ViktorCarlén) 它没有,所以我在其中添加了以下内容:

var article_id = $("#blog_articles_dialog-"+article_id);

'article_id未定义'erro消失,但我得到'未捕获错误:语法错误,无法识别的表达式:#blog_articles_dialog- [object Object]'作为回报​​:(

1 个答案:

答案 0 :(得分:1)

让我们删除对话框ID中的最后一行:

<div id="blog_articles_dialog" class="blog_articles_dialog" title="Confess deletion">
    Are you sure you want to delete </b>'".$blog['title']."'</b> ?
</div>

然后跳过不存在的article_id变量。 (像这样的空函数调用与$(document).ready();)

相同
$(function () {
    $("#blog_articles_dialog").dialog({ autoOpen: false, resizable: false, draggable: false, closeOnEscape: true, dialogClass: "alert-dialog", width: "380", modal: true });
    $("#blog_articles_dialog").dialog({ hide: { effect: "clip", direction: "vertical", duration: 350 }});
});

然后添加:data-article-id =&#34;&#39;。$ blog [&#39; article_id&#39;]。&#39;&#34;对于触发删除对话框的元素,以下内容应该有效:

$(".blog_articles_bottom_actions_remove").on('click', function (event) {
     $("#blog_articles_dialog").dialog("open");
     var article_id = $(this).attr('data-article-id');
     console.log(article_id);
});

告诉我你是否希望我详细说明它是否不清楚或不能正常工作。