我正在使用一个名为“ 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/