0

嗨,对于 jquery 地图,我通过 ajax 获得了值。地图的格式必须是 var new_sample_data = {"af":"16.63","al":"11.58","dz":"158.97",...};.

我已经用 var 对其进行了测试new_sample_data = {"af":16.63,...};,一切正常。但如果我接管杰森。它不起作用。我必须改变什么?

php测试代码:

$sample_data[] = array("de","$de");

echo json_encode($sample_data);

javascript代码:

        $.ajax({ 
        type: "POST",                                    
        url: '../mail/assets/includes/geodata1.php',
        data: {datum1: Date.today().add({days: -29}).toString('yyyy-MM-dd'), datum2: Date.today().toString('yyyy-MM-dd')},
        dataType: 'json',
        success: function(data)
        {
        var new_sample_data = data;

在 Firebug 中,我看到响应是[["de","4"]]. 但是我如何将其更改为地图所需的格式?

4

3 回答 3

3

您需要在 PHP中创建一个关联数组:

$sample_data = array("de"=>"$de");

然后对其进行编码应该会产生一个可以解析为 JavaScript 对象的正确 JSON 字符串。

new_sample_data要查看JavaScript 中的正确内容,请使用console.dir(new_sample_data);,它将列出对象的属性。

您可以在 JavaScript 中以这种方式访问​​新属性的值:

console.log(new_sample_data.de);

于 2013-07-25T13:35:07.973 回答
1

您的 php 数组应将 de 的索引设置为变量,如下所示:

$sample_data[] = array("de" => "$de");

那是 $sample_data["de"] will = "$de";

于 2013-07-25T13:29:19.577 回答
0

$sample_data['de'] = $de;

它会按您的预期工作

于 2013-07-25T13:41:07.643 回答