尝试在Javascript(.js)文件中运行php代码
首先,我对php非常陌生,所以请容忍我。我有一个来自wordpress模板的javascript(.js)文件,它从尝试在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
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;