Присвоение значения из PHP в JavaScript - PullRequest
0 голосов
/ 20 января 2009

Я использую jQuery, JavaScript и PHP. Мой Ajax.php файл просто отображает данные. Файл test.php присваивает значение функции JavaScript.

Моя проблема в том, что я не могу получить значения, назначенные test.php, из getList(data).

Что-то не так с моей логикой? Что мне делать, чтобы получить значения, назначенные 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];
    }
 }

Ответы [ 2 ]

1 голос
/ 20 января 2009

Приведенный ниже код выведет необходимые значения в 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>
0 голосов
/ 20 января 2009
$.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, если только вы не загружаете этот PHP в iframe для непосредственной манипуляции контекст родительского окна.

Вам следует изменить test.php, чтобы он возвращал JSON. Что в любом случае возвращает ajax.PHP?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...