从 PHP 到 JavaScript 的赋值

Posted

技术标签:

【中文标题】从 PHP 到 JavaScript 的赋值【英文标题】:Value assignment from PHP to JavaScript 【发布时间】:2010-10-02 09:20:14 【问题描述】:

我正在使用 jQuery、javascriptphp。我的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 的赋值的主要内容,如果未能解决你的问题,请参考以下文章

javascript用html给变量赋值

把JavaScript的变量赋值给php的变量

C/C++,Java,PHP,JavaScript,Json数组对象赋值时,最后一个元素后面是否可以带逗号?

php的关于字符串类型的变量的赋值问题,谢谢

如何从 Javascript 调用 PHP 文件并将数据从 PHP 返回到 Javascript

Javascript 闭包 vs PHP 闭包,有啥区别?