繁体   English   中英

如何将多个PHP变量传递给jQuery函数?

[英]How to pass multiple PHP variables to a jQuery function?

我正在使用Wordpress插件。 我需要将插件目录(可以根据个人的安装而改变)传递给jquery函数。

这样做的最佳方式是什么? 我可以处理的插件版本包含了PHP文件中的所有javascript,因此在浏览器中呈现之前,函数与其余内容一起被解析。

我在看AJAX,但我认为它可能比我需要的更复杂。 在这种情况下,我只能使用两个变量(目录,没有用户设置)。

正如我已经阅读了它的良好实践,我试图将js和php分开。 当插件初始化时,它会调用js文件:

    //Wordpress calls the .js when the plugin loads
    wp_enqueue_script( 'wp-backitup-funtions', plugin_dir_url( __FILE__ ) . 'js/wp-backitup.js', array( 'jquery' ) );

然后我在.js文件中,需要弄清楚如何生成以下变量:

    dir = '<?php echo content_url() ."/plugins"; ?>';
    dir = '<?php echo content_url() ."/themes"; ?>';
    dir = '<?php echo content_url() ."/uploads"; ?>';

并运行解析以下请求:

    xmlhttp.open("POST","<?php echo plugins_url() .'/wp-backitup/includes/wp-backitup-restore.php'); ?>",true);
    xmlhttp.open("POST","<?php echo plugins_url() .'/wp-backitup/includes/wp-backitup-start.php'); ?>",true);
    xmlhttp.open("POST","<?php echo plugins_url() .'/wp-backitup/wp-backitup-directory.php'); ?>",true);
    xmlhttp.open("POST","<?php echo plugins_url() .'/wp-backitup/wp-backitup-db.php'); ?>",true);
    window.location = "<?php echo plugins_url() .'/wp-backitup/backitup-project.zip'); ?>"; 
    xmlhttp.open("POST","<?php echo plugins_url() .'/wp-backitup/wp-backitup-delete.php'); ?>",true);

内容URL和插件URL的区别仅在于/ plugins /所以如果我很难,我只需要发一个PHP请求,然后把它带到JS中。

您的函数可以加载到.js文件中,但是当您在PHP页面中对插件进行itiniatlize时,可以给出您需要的PHP变量。 例如:

$("#myDiv").startPlugin("<?php echo $directory;?>");

如果你需要来自php的信息,你真的没有选择将它提供给某个地方的插件。 用ajax查询它对我来说不是一个好主意。

它没有看到代码很难,但一般来说我会从PHP的某处输出目录:

<script type="text/javascript">
  var dirs = <?php echo empty($dirs) ? "{}" : json_encode($dirs); ?>;
</script>

又快又脏:

<script type="text/javascript">
<?php
    echo 'var myJsObject =' . json_encode(array(
        'dir1' => $directory1,
        'dir2' => $directory2
    ));
?>
    alert(myJsObject.dir1);
</script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM