Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果存在PHP变量,则运行jQuery函数_Javascript_Php_Jquery - Fatal编程技术网

Javascript 如果存在PHP变量,则运行jQuery函数

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({

我正在使用一个名为“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的变量,看看我的数据库中是否存在一个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哎哟,修正了!谢谢你。@