2016-05-01 55 views
1

我在我的MySQL表中有X和Y坐标。我有他们在我的PHP文件把他们在一个联想阵列在数组中保存AJAX响应

while($row=$result->fetch_assoc()){ 
    echo $row['x']; 
    echo $row['y']; 
} 

我想将它们保存在我的html文件(与JavaScript)在2数组。 这怎么可能?我可以使用例如一个JavaScript循环从保存输出(x和y坐标)到不同数组中切换吗?

感谢您的每一个回应!

+0

你想在JS的PHP价值观 –

+0

加油,另一个Ajax JSON问题?请在使用Google之前询问... – evolutionxbox

+0

您的问题很混乱。标题说你想使用AJAX,但问题是你想把它们放到HTML文件中。 – Barmar

回答

0

把它们放入一个PHP数组,然后使用json_encode将其转换成的JavaScript。

$array = array(); 
while($row=$result->fetch_assoc()){ 
    $array[] = array('x' => $row['x'], 'y' => $row['y']); 
} 
echo json_encode($array); 

在JavaScript,Ajax回调函数可以使用JSON.parse()将其转换为对象的数组。

如果您需要两个阵列,请将xy值推入不同的阵列,然后在JSON响应中组合它们。

$xarray = array(); 
$yarray = array(); 
while($row=$result->fetch_assoc()){ 
    $xarray[] = $row['x']; 
    $yarray[] = $row['y']; 
} 
echo json_encode(array('x' => $xarray, 'y' => $yarray)); 

然后在你的Javascript做:

var obj = JSON.parse(response); 
var xarray = obj.x; 
var yarray = obj.y; 
+0

感谢您的回答!但是,当我尝试使用JSON.parse(xmlhttp.responseText)它说“SyntaxError:意外的令牌<在JSON在位置0”。 – Hris

+0

这意味着您的AJAX脚本在JSON之前正在输出HTML。除了'echo json_encode($ array);'外,它不应该产生任何输出。线。 – Barmar

+0

对不起,我是新手!但现在我怎么可以有2个数组与JavaScript中的x和y坐标,当我完成echo json_encode($ array); – Hris

0

您是在查找json_encode
http://php.net/manual/en/function.json-encode.php

这会让你直接将数组打印到JavaScript中。例如:

<?php 
    $coord = array(
     'x' => 52, 
     'y' => 17, 
    ); 
?> 

<script> 
var coords = <?php echo json_encode($coord); ?>; 
</script> 

将打印

<script> 
var coords = {"x":52,"y":17}; 
</script>