我正在使用一个名为“ Bootbox”的Twitter引导插件,该插件显示了模式形式。
我只希望模态表单显示出来,如果mysql数据库中有一个“ popup” ID。否则,我根本不希望函数运行。

这是我所拥有的:

     var popupid = <?php if ($contact->find_popup()) { echo $contact->popup()->id; } ?>;
 if(popupid) {
     bootbox.dialog({
                    message: "<?php if ($contact->find_popup()) {
                                    echo $contact->popup()->message;
                        };
                    ?>",
                    title: "Contact Pop-Up",
                    buttons: {
                      danger: {
                        label: "Delete...",
                        className: "red",
                        callback: function() {
                           $.ajax({
                                url: "ajax_delete.php?table=popups&id=" + popupid,
                                type: "POST",
                                dataType: 'json',
                                success: function(response) {
                                        //response here if data response
                                    if (response) {
                                            toastr.info('Successfully deleted popup!');
                                            }
                                    }
                                });
                        }
                      },
                      main: {
                        label: "Ok!",
                        className: "blue",
                        callback: function() {
                        }
                      }
                    }
                });
}


我设置了一个名为popup的变量,该变量查看数据库中是否存在弹出窗口ID。如果有一个,我的find_popup()方法返回true,否则返回false。如果返回true,则popupid应该等于我需要的回显id。

如您所见,然后将弹出ID传递到ajax URL中。我使用它来运行一个删除脚本,如果用户选择“删除...”,该脚本将删除弹出窗口。

如果出现弹出窗口,那么一切现在都可以正常进行,并且只有在出现弹出窗口时才可以。如果没有,我的页面将无法正常工作。我认为这是因为bootbox.dialog仍然被调用。

也许我写错了吗?

最佳答案

var popupid = <?php if ($contact->find_popup()) { echo $contact->popup()->id; } ?>;


在这里,一旦执行了PHP,您将:

// If a popup exists
var popupid = 123;

// If there is no popup
var popupid = ;


第二行将使您的JS崩溃。

我建议:

var popupid = <?php if ($contact->find_popup()) { echo $contact->popup()->id; } else { echo false; } ?>;


或如塞思建议的那样:

var popupid = <?php echo (($contact->find_popup()) ? $contact->popup()->id : false); ?>;

关于javascript - 如果PHP变量存在,请运行jQuery函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28884156/

10-12 00:21
查看更多