【问题标题】:Value assignment from PHP to JavaScript从 PHP 到 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];
    }
 }

【问题讨论】:

    标签: php javascript jquery ajax


    【解决方案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 示例
      猜你喜欢
      • 1970-01-01
      • 2015-07-25
      • 1970-01-01
      • 1970-01-01
      • 2020-12-10
      • 2013-01-22
      • 2011-03-15
      • 2016-03-26
      • 2023-02-20
      相关资源
      最近更新 更多