Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.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(.js)文件中运行php代码_Php_Javascript_Wordpress - Fatal编程技术网

尝试在Javascript(.js)文件中运行php代码

尝试在Javascript(.js)文件中运行php代码,php,javascript,wordpress,Php,Javascript,Wordpress,首先,我对php非常陌生,所以请容忍我。我有一个来自wordpress模板的javascript(.js)文件,它从var googledockey读取密钥。为了更改它,我必须手动打开.js文件并更改该变量。我想做的是让.js文件从保存在我制作的页面上的地方获取密钥。下面是管理员页面的代码,该页面有一个文本字段供我输入密钥 <?php if($_POST['gdocs2wp_hidden'] == 'Y') { //Form data sent

首先,我对php非常陌生,所以请容忍我。我有一个来自wordpress模板的javascript(.js)文件,它从
var googledockey
读取密钥。为了更改它,我必须手动打开.js文件并更改该变量。我想做的是让.js文件从保存在我制作的页面上的地方获取密钥。下面是管理员页面的代码,该页面有一个文本字段供我输入密钥

<?php   
    if($_POST['gdocs2wp_hidden'] == 'Y') {  
        //Form data sent  
        $gdkey = $_POST['gdocs2wp_gdkey'];  
        update_option('gdocs2wp_gdkey', $gdkey);  


        ?>  
        <div class="updated"><p><strong><?php _e('Options saved.' ); ?></strong></p></div>  
        <?php  
    } else {  
        //Normal page display  
        $gdkey = get_option('gdocs2wp_gdkey');  
    }  
?>  

您可以让JS运行Ajax调用来获取数据。或者,您可以将变量声明移动到包含JS的PHP/HTML文件中,只需添加


var googledockey=“”

这很简单 您最近正在使用此代码snipet

var jqueryNoConflict = jQuery;
//var googledockey = <?php echo $gdkey; ?>
var googledockey = "INSERTmyKEYhere";

// begin main function
jqueryNoConflict(document).ready(function(){

initializeTabletopObject(googledockey);

});
var jqueryNoConflict=jQuery;
//变量googledockey=
var googledockey=“INSERTmyKEYhere”;
//开始主要功能
jqueryNoConflict(document).ready(function(){
初始化TableToObject(谷歌Dockey);
});
您需要将其替换为以下代码

var jqueryNoConflict = jQuery;
 var googledockey = "<?php echo $gdkey; ?>"
 var googledockey = "INSERTmyKEYhere";

   // begin main function
    jqueryNoConflict(document).ready(function(){

initializeTabletopObject(googledockey);

});
var jqueryNoConflict=jQuery;
var googledockey=“”
var googledockey=“INSERTmyKEYhere”;
//开始主要功能
jqueryNoConflict(document).ready(function(){
初始化TableToObject(谷歌Dockey);
});

1。注册您的脚本

创建一个JavaScript文件,将其放在主题文件夹中,并在WordPress中注册

wp_register_script(
    'google-docs',
    get_bloginfo('template_directory') . '/scripts/google-docs.js'
);
文件:

2。将脚本排队

只要模板中需要脚本,就可以将文件排队

wp_enqueue_script(
    'google-docs'
);
文件:

3。本地化脚本

这允许您在JavaScript中使用PHP变量

wp_localize_script(
    'google-docs',
    'google_docs_vars',
    array(
        'key' => $google_doc_key
    )
);
文件:

4。在脚本中使用变量

现在您可以访问脚本中的变量了

var google_docs_key = google_docs_vars.key;

就这样。我认为这将解决您的问题,而且这也是正确的方法。

JS文件通常不会为PHP解析。最简单(尽管不是最漂亮)的方法可能是:

1) 在页面模板本身的隐藏DOM元素中回显该值,然后使用JS获取该元素并设置变量(因此,将该值放在页面的隐藏元素中,或者作为属性或其他内容,然后使用JS获取该值并将其分配给变量)

2) 与上面类似,只需将变量声明放在内联脚本(
code
)中,因为它将被PHP解析-请参阅Seriyia的答案


3) 使用简单的AJAX调用,这对于jQuery来说非常简单,可以让您将数据从JS传递到其他地方的PHP函数,比如
functions.PHP
,然后返回到JS。如果您不熟悉AJAX,那么这可能会带来更多的麻烦。

除非配置为解析JS文件,否则PHP解析器不会解析JS文件。不过,您可以做一个脚本标记,并将标记的src设置为phpuri。然后,PHP可以在浏览器使用JS之前对其进行操作。否则,如果您使用的是Apache,则可以在.htaccess文件中添加以下内容:AddType application/x-httpd-PHP.jsI尝试将其添加到.htaccess文件中,但没有任何更改。我使用尝试过,但没有成功。我需要做的就是在它的周围加上“”?当然可以。因为您执行此操作的方式没有将其转换为字符串。在这里,我的方法将回显并将其转换为字符串。我从来都不知道您可以这样做-多么有用!
var google_docs_key = google_docs_vars.key;