Javascript 如果存在PHP变量,则运行jQuery函数
我正在使用一个名为“Bootbox”的Twitter引导插件,它显示了一个模式表单。 我只想在mysql数据库中有“popup”id时显示模式表单。否则,我根本不希望函数运行 以下是我所拥有的:Javascript 如果存在PHP变量,则运行jQuery函数,javascript,php,jquery,Javascript,Php,Jquery,我正在使用一个名为“Bootbox”的Twitter引导插件,它显示了一个模式表单。 我只想在mysql数据库中有“popup”id时显示模式表单。否则,我根本不希望函数运行 以下是我所拥有的: var popupid = <?php if ($contact->find_popup()) { echo $contact->popup()->id; } ?>; if(popupid) { bootbox.dialog({
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的变量,看看我的数据库中是否存在一个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; } ?>;
第二行将使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); ?>;
第二行将使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); ?>;
那么,如果数据库中没有弹出窗口id,为什么还要呈现javascript呢
<?php
if ($contact->findPopup()) {
?>
<!-- javascript/html/whatever goes here -->
<?php
}
?>
然后,只有当数据库中有有效的弹出id时,才会呈现javascript。那么,如果数据库中没有弹出id,为什么还要呈现javascript呢
<?php
if ($contact->findPopup()) {
?>
<!-- javascript/html/whatever goes here -->
<?php
}
?>
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() {
}
}
}
});
}
然后,只有在数据库中存在有效的弹出窗口id时,才会呈现javascript
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时,popup id存储为一个变量,我需要这个变量作为ajax url。但仍然有效
谢谢你的帮助
谢谢你的建议。除非我把这行加上引号,否则它不会正常工作
var popupid = "<?php if ($contact->find_popup()) { echo $contact->popup()->id; } else { echo false;} ?>";
Siliconrockstar的建议也有效,但我使用上面的方法,因为它检查find_popup时,popup id存储为一个变量,我需要这个变量作为ajax url。但仍然有效
感谢您的帮助。如果数据库中没有条目,为什么不返回一些无效id,如-1?然后检查类似于ifpopupid!==-1{do your call}您只需检查popupid是否是一个变量,然后尝试类似ifpopupid>0的方法{,您也可以将所有js封装在php if语句中,而不使用js IfDB中没有条目时为什么不返回一些无效的id,如-1?然后检查ifpopupid!=-1{do your call}您只需检查popupid是否是一个变量,可以尝试类似ifpopupid>0这样的方法{,你也可以把你所有的js都封装在php if语句中,而不用js ifPerfect case for。这样更清晰。三元运算符对执行时间/资源更好吗?真正的问题。无论如何,我同意这里的可读性更好,谢谢。对,对不起。我也用这个建议编辑了我的帖子。不,没有据我所知,一个性能缺点。但是,你在第二个示例中没有回显三元语句。@Seth呜呜声,修复了!谢谢!非常适合。这样更清晰。三元运算符在执行时间/资源方面更好吗?真正的问题。无论如何,我同意这里的可读性更强,谢谢。对,对不起。我是edited也对我的帖子提出了这个建议。不,据我所知,它在性能上没有缺点。但是,你在第二个例子中没有重复三元语句。@Seth哎哟,修正了!谢谢你。@