在JavaScript Drupal 7中使用PHP阵列[重复] -- javascript 领域 和 json 领域 drupal 相关 的问题

Using PHP arrays in Javascript Drupal 7 [duplicate]


1
vote

问题

中文
这个问题已经在这里有答案
如何将变量从.php文件发送到.js文件?< / a> (3个答案)
CLOSED 5年前

我整天都在这个问题,我没有找到解决问题的答案:

我需要在我的javascript文件中提供一个php变量。 目前我正在使用一个fetchmarkers.php来从我的数据库中返回记录,我想在我的JavaScript文件中提供这个信息(它们是数组)。

如何将此工作?我目前正在使用我的页面中的php - front.tpl.php文件,因为我不确定如何调用它。

但是,我现在的问题是:如何为我的JavaScript文件提供PHP阵列? 我json_encode()d我的阵列在php中使用:

      echo json_encode($latitudes);     echo json_encode($ar);   

我已经尝试了多件事,但他们都没有工作(这么多件事让我越来越困惑)。所以我的问题只是:

如何在我的javascript中访问这两个变量?

英文原文

I've been stuck on this all day and I haven't been able to find an answer that solved my issue:

I need to make a PHP variable available in my Javascript file. Currently I'm using a fetchMarkers.php to retreive records from my database, and I would like to make this info available (they're arrays) in my javascript file.

How can I get this to work? I'm currently working with the PHP in my page--front.tpl.php file because I'm unsure of how to call it.

But, my question for now is: How do I make PHP Arrays available to my Javascript file? I've json_encode()d my arrays in the PHP with:

    echo json_encode($latitudes);     echo json_encode($ar); 

And I've tried multiple things but none of them worked (so many things that it just got me more and more confused). So therefor my question is just:

How can I access these two variables in my Javascript?

     
   
   

回答列表

2
 
vote

您不需要手动将PHP数组转换为JSON对象;添加Drupal设置将为您执行此操作。

  $vars = array('variableName' => 'value'); drupal_add_js($vars, 'setting');   

如果您想详细了解,就像如何使用Drupal行为使用它。 在 https://drupal.stackexchange.com/a/74535/17883

 

You don't need to manually convert PHP array to JSON object; adding a drupal setting will do this for you.

$vars = array('variableName' => 'value'); drupal_add_js($vars, 'setting'); 

If you want to understand in detail, like how to use it with Drupal Behaviors. See my answer on https://drupal.stackexchange.com/a/74535/17883

 
 
   
   
0
 
vote

将数据传递给js有多种方式。在模板文件中打印JSON编码不是一个好方法。

我推荐Maarten在使用模块时的建议。构建模块后,请在 js api 上,结帐文档,特别是设置部分如果您正在寻找将模块变量传递给js。

如果您正在寻找抓取内容数据(例如,您的节点有自定义Geo坐标字段)。您可能希望查看服务模块;它会让您在Ajax请求中抓取内容数据。

 

There are multiple ways to pass data to JS. Printing JSON encodings in a template file is not a good method.

I recommend Maarten's suggestion at employing a module. Once you've built a module, checkout the documentation on the JS API, specifically the settings section if you're looking to pass module variables to JS.

If you're looking to grab content data (e.g. your nodes have custom geo coordinate fields). You might want to look at the services module; it will let you grab content data in AJAX requests.

 
 

相关问题

1  ColorBox宽度在链接上  ( Colorbox width on links ) 
我正在使用 colorbox 模块通过视图显示使用ColorBox的一些目录节点。当有人点击目录链接时,它会在ColorBox中打开。 现在,每当有人访问网站时,我的客户希望在Splash屏幕中显示链接到Splash屏幕中。 我已经使用了 splashify 模块显示闪存屏幕,并使用链接输入新的目录映像相关的目录节点...

0  模块与jQuery冲突  ( Module conflicting with jquery ) 
我已经为我的网站设置了一个简单的 hide-show.js 文件,我也在使用模块。 问题是,如果我的模块处于活动状态,则页面的jQuery不起作用,在写入或任何内容之后,我需要做的东西以"关闭" 我的模块? 编辑:我的控制台没有显示任何错误。使用jQuery我的意思是页面上的函数(即单击隐藏显示按钮没有任何内容)。 ...

0  如何在调用表单提交处理程序之前执行JavaScript函数?  ( How can i execute a javascript function before the form submission handler is ca ) 
我试图使用以下代码在数据库中保存图像。 function myid_user_page_form() { $form = array(); $form['submit'] = array( '#type' => 'submit', '#value' => 'Save', '#at...

2  任何人都知道如何构建这样的菜单? [关闭]  ( Anyone know how to build a menu like this ) 
此问题似乎在帮助中心中定义的范围内涉及Drupal。。 想要改进这个问题?更新问题,所以它是关于drupal答案的主题。 ...

3  在模态/弹出窗口中显示内容  ( Show content in a modal popup window ) 
我在我的drupal站点中使用视图,我希望显示一个包含自定义信息的弹出窗口(我点击查看项目时,我猜的内容类型的信息)。 真的类似的东西: http://conference.99u.com/#speakers < / p> 在drupal中有一种简单的方法吗?这是最佳模块? 提前谢谢! ...

1  datepicker从Drupal Rooms模块中消失  ( Datepicker disappeared from drupal rooms module ) 
我现在一直在努力解决几天。我安装了drupal 房间 我尝试了我可以想到的所有可能的设置 - 没有运气。所以(鉴于我记得它在框中工作),我决定在测试服务器上使用最小配置创建一个干净的安装(BTW,您必须将13个模块安装为最小配置以使其启动和运行: - ))检查源代码中的差异。 我已经找到了两个主要的相关差异: 1....

2  Colorbox你管视频  ( Colorbox you tube video ) 
我正在使用 youtube 模块和 colorbox 。我有一个内容类型,在预告片中有一个youtube缩略图。如果您单击它,我希望它将在彩色框中打开尺寸420x315。相反,它在完整的浏览器窗口中打开。 我有youtube colorbox模块安装并启用了,但是当我必须配置缩略图时,它会提到颜色框,但不是youtu...

1  表单附加了JS属性  ( Form attached js attributes ) 
我正在尝试转换这个: <script>1 进入这样的东西: <script>2 但我似乎无法找到添加属性的方法:( 任何想法? ...

2  如何在AJAX呼叫后访问My Modure的实际JS设置?  ( How to access actual js settings of my module after ajax call ) 
我需要为我的视图页添加一些额外的JS数据。 我在我的模块中写入: function mymodule_views_pre_render(&$view) { if ($view->name == "myview") { $outdata=array('dataset'=>my_custom_function_w...

1  如何创建图像库并将其集成到LightBox2 [已关闭]  ( How to create image gallery and integrate it to lightbox2 ) 
关闭。这个问题需要更多聚焦。它目前不接受答案。 想要改进这个问题?更新问题,因此它仅关注一个问题,只有编辑此帖。 关闭 5年前。 ...

1  Ajax加载节点通过jQuery  ( Ajax load node via jquery ) 
我在加载我的节点时,ajax看起来不一致的问题。我最初遵循这个博客的建议 http://mrkadin.com/blog/node/70 它似乎完美地工作。我将我的网站扩展到包括下一个/上一个按钮的JS。我试图将这些按钮绑定到使用Ajax以与视图项的工作相同的方式加载节点信息,但是我的结果是可怕的。 视图加载的...

1  D6带CKEDITOR的插入模块不适用于样式  ( D6 insert module with ckeditor does not work with styles ) 
摘要 使用 imagefield 和插入模块,我可以插入 ckeditor "自动" 图像样式,但不是"灯箱" 样式。 我尝试了什么 这表明CKEditor过滤插入的代码。我尝试了禁用(a)security&gt;安全筛选器"HTML过滤器" (b)高级内容过滤器(c)高级选项&gt;自定义JavaScript配置"...

1  传单库即使它在网站/所有/库中也不是可用的  ( Leaflet library not avaliable even though its in sites all libraries ) 
我见过人们谈论hook_library()等,但我不是创建自定义模块,我正在尝试使用传单。在浏览器中,我收到错误消息: L is not defined 从我的网站/全部/模块文件夹中的LeaClet.drupal.js。我已经安装了和启用了传单和库模块,并且在站点/全部/库/张传单下提取了传单文件。 任何...

1  '管理显示':新字段不会拖动  ( Manage display new fields not draggable ) 
当我尝试拖动'管理显示'/ in / mandion 中的字段(例如"预告片" ),它只是不留在隐藏折叠之上。首先显示确认消息。但一旦淡出,该字段"跳回" 隐藏部分。而不是我刚刚丢弃在隐藏 fold之上的字段,字段列表仅显示"未显示" 。 它以前做过课程。从那时起,我已经安装了模块"更新jquery" - 但...

1  使用jquery-match-height将两个块设置为相等的高度  ( Using jquery match height to set two blocks to equal height ) 
我是jquery的新手,并将它添加到drupal。但是,我正在尝试将此库添加到我的Drupal网站,以便我可以将我的主页上的两个块设置为相同的高度。但它不起作用,我不确定为什么。 这是图书馆: https://github.com/liabru/jquery-match-height < / p> 主页上的项目...

1  javascript文件中的file_create_url()等效文件?  ( File create url equivalent in a javascript file ) 
我正在使用$ .getScript()动态加载脚本,该脚本工作正常,但使用它来自WebServer的CDN模块,而不是CDN。有没有方法可以在js中获取正确的CDN路径,类似于File_Create_URL()如何工作? ...

1  ColorBox无法在Drupal 7中在User-login.tpl.php中工作  ( Colorbox not working in user login tpl php in drupal 7 ) 
我正在尝试通过colorbox以Comicated登录表格中的忘记密码页面。 我通过此代码(user-login.tpl.php)自定义我的登录页面: - $base_url = variable_get('base_url', ''); // split the username an...

2  Drupal表单#ajax回调和javascript toggleclass上的单选按钮 - 减少功能  ( Drupal form ajax callback and javascript toggleclass on radio buttons reduced ) 
我们正在使用drupal,我在表单项上设置了一个ajax回调。表单项是带有两个ON / OFF选项的单选按钮。还附加到单选按钮是一些致以一个课程的JS。只要评论out 即可,该类就会正确地切换。 这是我代码的粘贴: //调用Web服务并获取值以确定类 <?php if (($user_alert['endDat...

2  如何将JavaScript文件定位为最后一个加载?  ( How to position javascript file as the last one to load ) 
在Drupal中,不支持库中的JavaScript文件的权重,或者至少允许允许负值,这意味着我只能在列表顶部定位它们(​​即首先加载它)但不是列表的末尾。 我有一个用于zurb foundation的库,它初始化必须加载。这是我的主题的要求,我不想覆盖模板来解决这个问题。 如何应该这样做? ...

2  显示节点在弹出窗口中添加表单[重复]  ( Display node add form in popup ) 
这个问题已经在这里有答案: 显示表单在模态窗口[关闭] (5个答案) 关...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.