我正在使用名为“Bootbox”的Twitter引导程序插件。这显示了一种模态形式。 如果有一个弹出窗口,我只想显示模态表单。在mysql数据库中的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。我使用它来运行删除脚本,如果用户选择&#34;删除...&#34;则删除弹出窗口。
现在一切正常如果只有弹出窗口存在。如果没有,我的页面无法正常工作。我认为这是因为仍然调用了bootbox.dialog。
也许我写错了?
答案 0 :(得分:2)
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); ?>;
答案 1 :(得分:2)
那么,如果数据库中没有popup_id,为什么要渲染javascript呢?
<?php
if ($contact->findPopup()) {
?>
<!-- javascript/html/whatever goes here -->
<?php
}
?>
如果数据库中存在有效的popup_id,则只会呈现您的javascript。
答案 2 :(得分:1)
var popupid = "<?php if ($contact->find_popup()) { echo $contact->popup()->id; } else { echo false;} ?>";
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() {
}
}
}
});
}
感谢您的建议。在我将这一行放在引号中之前它无法正常工作!
var popupid = "<?php if ($contact->find_popup()) { echo $contact->popup()->id; } else { echo false;} ?>";
Siliconrockstar的建议也有效,但我使用上述内容,因为它检查find_popup时,弹出ID被存储为ajax url所需的变量。仍然有效...
感谢帮助。