首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在PHP和Javascript之间传输数组的最佳方法

在PHP和Javascript之间传输数组的最佳方法
EN

Stack Overflow用户
提问于 2008-12-26 04:39:37
回答 5查看 34.5K关注 0票数 20

所以我有一个从数据库中检索到的记录数组。数组的格式为;

代码语言:javascript
运行
复制
$rows[0]['id']=1;
$rows[0]['title']='Abc';
$rows[0]['time_left']=200;


$rows[1]['id']=2;
$rows[1]['title']='XYZ';
$rows[1]['time_left']=300;
//And so on upto 10-20 rows

将这个数组转移到我的javascript代码中的最好方法是什么?我希望javascript能够遍历所有的记录,并使用' id‘属性,用一些信息用这个id更新div。

我的javascript代码在一个外部的.js文件中,但是我能够在我的页面的HTML代码中执行php代码。所以我可以这样做:

My_file.js中的

代码语言:javascript
运行
复制
var rows=New Array();

HTML代码中的

代码语言:javascript
运行
复制
<html>
<head>
<script type="text/javascript" src="js/my_file.js"></script>

<script type="text/javascript">
<? foreach ($rows as $row):?>
<? extract($row);?>
rows[<?=$id;?>]['title']="<?=$title;?>";
//And so on
<? endforeach;?>
</script>
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2008-12-26 05:08:08

为此,我倾向于使用JSON对象:

在服务器端,JSON对您的数据进行编码:在JavaScript端,我编写了一个函数,该函数将JSON对象作为参数并解压缩。

在解压对象时,可以将数组的内容打印到<DIV>标记中,或者打印到页面上的任何位置(jQuery在这方面做得很好)。

票数 29
EN

Stack Overflow用户

发布于 2008-12-26 05:52:50

如果你在做内联数据,我一直喜欢这样做

代码语言:javascript
运行
复制
<script type="text/javascript">
window.sitescriptdata = {}; 
window.sitescriptdata.foo = ( <?php echo json_encode( $structure ); ?> );
</script>

对于基本的东西,省去了做AJAX回调的麻烦。此外,如果您想将数据粘合到DOM节点,那么“元对象”方式是我真正喜欢的方式。

代码语言:javascript
运行
复制
<div id="foobar">
 <div><object class="metaobject">
        <param name="data" value="<?php echo htmlentities(json_encode($data), ENT_QUOTES );?>" />
 </object></div>
</div> 

这看起来可能不是很好,但它是直接将数据与DOM节点关联的有效方法,而不需要知道到该节点的确切唯一路径。如果您有许多需要附加到特定屏幕元素的数据集,这将非常方便。

我通常使用jQuery的http://noteslog.com/metaobjects/插件,但它太简单了,我偶尔会自己写(有一段时间我找不到这个插件,但它的工作原理很新)

完成后,将会有

$("div#foobar >div“).get().data。($yourarrayhere)

对你的代码是可见的。

票数 12
EN

Stack Overflow用户

发布于 2008-12-26 05:31:19

为了回答你的问题(和我的回复,我在评论回复上没有空间了),下面是我使用的代码的一个非常简化的子集:

jQuery中的Javascript AJAX处理程序:

代码语言:javascript
运行
复制
$.ajax({
   type: "POST",
   url: "BACKEND.php",
   timeout: 8000,
   data: "var1=" + myVar,
   dataType: "json",
   error: function(){
     $("#DIVID").html("<div class='error'>Error!</div>");
   },  
   success: function(jsonObj){
     $("#DIVID").html(jsonObj.mydata);
   }
 });


PHP Array:
$data['mydata'] = $myData;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/393479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档