从 PHP 到 JavaScript 的赋值
Posted
技术标签:
【中文标题】从 PHP 到 JavaScript 的赋值【英文标题】:Value assignment from PHP to JavaScript 【发布时间】:2010-10-02 09:20:14 【问题描述】:我正在使用 jQuery、javascript 和 php。我的Ajax.php
文件只显示
数据。文件 test.php
已将值分配给 JavaScript 函数。
我的问题是我无法从 getList(data)
获取 test.php 分配的值。
我的逻辑有什么问题吗?我该怎么做才能让 test.php 分配的值显示在 getList()
函数中?
$.ajax(
type: 'POST',
url: 'ajax.php',
data: 'id=' + id ,
success: function(data)
$("#response").html(data);
if(flag != 0)
flag = 0;
$.get("test.php", function(data)
alert("Data Loaded: " + data);
getList(data);
);
//Success
); //Ajax
而test.php有以下内容。
<?php
print "<script language='javascript'>";
print " temp[temp.length]=new Array('STA-VES','East',4500);";
print " temp[temp.length]=new Array('STA-CRF','West',5400);";
print "</script>";
?>
我的 JavaScript 函数有:
var temp=new Array();
getList()
alert(temp.length);
for(var i=0; i<temp.length; i++)
var val = temp[i];
【问题讨论】:
【参考方案1】:下面的代码会将您需要的值输出到JSON 中,重构后将类似于您的数组:
<?php
echo json_encode(array(
array(
'STA-VES',
'East',
4500
),
array(
'STA-CRF',
'West',
5400
)
));
?>
然后您的 jQuery 代码可以将响应解析回 JavaScript 对象。
<?php
json_encode(array(
array(
'STA-VES',
'East',
4500
),
array(
'STA-CRF',
'West',
5400
)
));
?>
<script type="text/javascript">
$.getJSON("test.php", function(json)
// Access object
for(var i = 0; i < json.length; i++)
alert(json[i][0]);
alert(json[i][1]);
alert(json[i][2]);
);
</script>
【讨论】:
【参考方案2】:$.get("test.php", function(data)
alert("Data Loaded: " + data);
getList(data);
);
您是否收到带有以下输出的警告框?
<?php
print "<script language='javascript'>";
print " temp[temp.length]=new Array('STA-VES','East',4500);";
print " temp[temp.length]=new Array('STA-CRF','West',5400);";
print "</script>";
?>
请注意,您应该获取 HTML(因为这是您在 PHP 文件中生成的内容。这不是将数据从 PHP 传递到 JavaScript 的方式,除非您在 iframe 中加载此 PHP 以直接操作父窗口上下文。
您应该更改 test.php 以返回 JSON。 ajax.PHP 到底返回了什么?
【讨论】:
是的,我收到了警报,但 getList 函数不会显示总长度 能否请您为这些建议 JSON 示例以上是关于从 PHP 到 JavaScript 的赋值的主要内容,如果未能解决你的问题,请参考以下文章
C/C++,Java,PHP,JavaScript,Json数组对象赋值时,最后一个元素后面是否可以带逗号?