将变量从Ajax传递到Javascript

将变量从Ajax传递到Javascript,javascript,php,arrays,ajax,Javascript,Php,Arrays,Ajax,我知道这个问题已经被问过几次了,可能已经回答过几次了,但不是在我需要的确切背景下,所以为了确保我完全理解,我想问我的具体场景 我要求当加载HTML/Javascript页面时,它会触发服务器端调用,从数据库中查询一些信息。然后,这些信息应该在服务器端形成一个数组,然后可以传递给客户端。从客户端,我应该能够在数组中循环并将它们推入客户端数组(我之所以循环并推入,是因为在此上下文中,我可能需要在将某些条目放入数组之前使用字符串作为前缀),然后将其显示给用户 我目前只看到了以div为目标并替换它的示例

我知道这个问题已经被问过几次了,可能已经回答过几次了,但不是在我需要的确切背景下,所以为了确保我完全理解,我想问我的具体场景

我要求当加载HTML/Javascript页面时,它会触发服务器端调用,从数据库中查询一些信息。然后,这些信息应该在服务器端形成一个数组,然后可以传递给客户端。从客户端,我应该能够在数组中循环并将它们推入客户端数组(我之所以循环并推入,是因为在此上下文中,我可能需要在将某些条目放入数组之前使用字符串作为前缀),然后将其显示给用户

我目前只看到了以div为目标并替换它的示例,但没有看到数组

我尝试了一些不同的代码尝试,但不幸的是没有运气(而且似乎无法完全理解如何在客户端和服务器之间传递值)


值得一提的是,我对其他语言(C#,Python)相当精通,所以在这方面我不是一个完全的新手,但这对Javascript/Ajax来说是一次相当新的尝试。

在传输Javascript中使用的数据时,通常最容易使用Javascript对象表示法(JSON),因此JSON编码:

<?php
//somearray.php
$arr = ["bar", "baz", "kaz"];
header('Content-Type: application/json');
echo json_encode($arr);

好的,下面是一个小例子,说明如何做到这一点。当您使用JSON时,它实际上非常简单。使用PHP中的
json\u encode()
,您可以轻松地将数组转换为json,通过AJAX接收数组,并使用each循环处理数据

以下是可用于测试的代码: HTML:


AJAX JSON示例
$(函数(){
$.getJSON('ajax.php',函数(数据){
$.each(数据、函数(索引、值){
$('body').append('Name:'+value.Name+'| City:'+value.City+'
'); }) }); });
PHP:



这里有一个来自上面代码的实例:

当您在客户机上循环数据时,为循环的每个元素创建一个容器/行。在循环结束时,将其附加到页面上的容器中。显示您有问题的代码。我能想象的唯一答案是指向教程的指针,这与SO无关。你所尝试的是唯一一件能从一位得票接近的候选人那里提出这个问题的事情
<html>
<body>
<script>
var xmlhttp = new XMLHttpRequest();
var url = "http://example.com/somearray.php";

xmlhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        var myArr = JSON.parse(this.responseText);
        prefix(myArr);
    }
};
xmlhttp.open("GET", url, true);
xmlhttp.send();

function prefix(arr) {
    var output = [];
    var i;
    for(i = 0; i < arr.length; i++) {
        output.push('foo ' + arr[i]);
    }
    console.log(output); //["foo bar", "foo baz", "foo kaz"]
}
</script>
</body>
</html>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>AJAX JSON Example</title>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
        <script>
            $(function(){
                $.getJSON('ajax.php',function(data){
                    $.each(data,function(index,value){
                        $('body').append('Name: ' + value.name + ' | City: ' + value.city + '<br />');
                    })
                });
            });
        </script>
    </head>

    <body>

    </body>

</html>
<?
// I was too lazy to set up a DB for this example.
// You should know how to process database data in PHP
/*
$sql = "SELECT `id`,`name`,`city` FROM `useres`";
$result = $db->query($sql);
while($array = $db->assoc($result))
{
    $json['id']['name'] = $array['name'];
    $json['id']['city'] = $array['city'];
}
*/

// This part is only the example data which you should have received from the DB
$json[1]['name'] = 'Test Tester';
$json[1]['city'] = 'Test Village';

$json[2]['name'] = 'Claud Atlas';
$json[2]['city'] = 'Haven';

// echo the array as JSON
echo json_encode($json);
?>