【问题标题】:can't set variable in JavaScript based on json id from php无法根据来自 php 的 json id 在 JavaScript 中设置变量
【发布时间】:2013-03-18 07:02:57
【问题描述】:

我有一个来自 php 文件的简单数组(不使用 json 文件的原因是因为此信息来自 mysql 数据库)

$array[0] = array('id' => 1,'price' => '325');
$array[1] = array('id' => 2,'price' => '486');      
header('Content-type: application/json');
echo json_encode($array);

它回显为:

[{"id":1,"price":"325"},{"id":2,"price":"486"}]

现在我要做的是获取 id 并将其添加到名为 counterval 的变量中,以便 JavaScript 将其读取为

counterval1 = 325;
counterval2 = 486;

但我似乎无法让它以这种方式阅读。这是当前的脚本。

$.getJSON('test.php',function(data) {
    $.each(data, function(i) {
    counterval + data[i].id = data[i].price;
    console.log (counterval2);
});
    $('#results').html(counterval2);    
});
var counterval1 = 0;
var counterval2 = 0;

对此的任何帮助将不胜感激。

【问题讨论】:

  • 为什么不用数组? counterval[data[i].id]?
  • 请将您的标题和标签更新为 JavaScript

标签: php javascript jquery getjson json


【解决方案1】:

你不能那样做……但你可以这样做……

var counterval = [];

$.getJSON('test.php',function(data) {
    $.each(data, function(i) {
         counterval[data[i].id] = data[i].price;
         console.log (counterval[2]);
    });
    $('#results').html(counterval[2]);    
});
counterval[1] = 0;
counterval[2] = 0;

【讨论】:

  • hmm...console.log 似乎说“意外令牌”的错误,但我明白你在说什么。
  • 也许你那里没有2
  • 不,一直给我同样的错误,我认为是 var counterval[1] = 0;
  • 啊……把var counterval = [];改成var counterval = {};怎么样
  • 嗯.. 不一样的输出。我什至尝试从您的脚本中复制粘贴。
【解决方案2】:

查看我对您帖子的评论。如果您真的希望变量看起来像您解释的那样:

eval("counterval" + data[i].id + " = data[i]..price");
alert(counterval1);

【讨论】:

  • 这是正确的,但它做了他想要的。不过我不会推荐它。
  • 这与我想要的效果很好,我想知道为什么你说你不会推荐它?
  • 通读SO thread
  • 啊,我明白了,什么是更安全的路线?而不是使用 eval。
猜你喜欢
  • 2021-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多