这应该是简单的,并且像往常一样,由于我不太彻底地教自己代码,我可能会忽略一些东西。希望这是有道理的......
在php循环中,我有这个:
var key = <?php echo json_encode($key); ?>;
var id<?php echo $key;?> = <?php echo json_encode($value['Claim']['id']); ?>;
var point<?php echo $key;?> = <?php echo json_encode($value['Claim']['point']); ?>;
根据我的意愿进行评估。所以id2等于id2应该是等等。
然后我需要调用这些变量,如下所示:
var takeurl = '/api/response.json?point='+ point + '&id=' + id;
除非我希望“point”和“id”为“point2”或“point4”的值,或者简称为point + key。
如果我把它写成
var takeurl = '/api/response.json?point='+ point + key + '&id=' + id;
它返回“point”的值加上“key”的值,而不是point2或point3的值。
然后我意识到,在开始时,在声明这些值时,我不应该一直打到php。我应该能够做到这样的事情:
var key = <?php echo json_encode($key); ?>;
var id[key] = <?php echo json_encode($value['Claim']['id']); ?>;
var point{"key"} = <?php echo json_encode($value['Claim']['point']); ?>;
然后使用相同的约定创建新变量。我已经阅读了类似的问题,其中答案涉及使用数组,但同样,这都是一个更大的PHP循环,所以我不认为这适合这种情况。
抱歉,我希望这很清楚。我在这个上赚了我的用户名。想法?
已编辑添加: 问题与我上面解释的有点不同。我的代码显然是拉出循环中出现的最终变量的值(好像我根本没有用'key'区别来定义它们,只是定义了“point”五次)。我担心我根本没有意义。这是一些代码,所以你可以看到发生了什么:codepad.org/ETX5dI6C
我需要的是,例如,当点击页面上的第四个链接时,要获取id4和point4的值。相反,无论我点击什么链接,它都会传递最后定义的id5和point5的变量。我不明白吗?
答案 0 :(得分:1)
这有点讨厌,但你可以像这样访问它们:
window['point' + key]
由于这些是全局变量,因此它们实际上是窗口对象的属性,因此可以使用该括号语法引用它们。
虽然这在window.point5
时相当于key == 5
,但请注意window.point+key
无效。
完整的解决方案将成为:
var takeurl = '/api/response.json?point='+ window['point' + key] + '&id=' + window['id' + key];
答案 1 :(得分:0)
您的问题是,您创建的字符串point + key
的评估值为point
加上key
的值。把你想要的是"point" plus key
的价值。
所以你需要做的是动态命名你赋予window对象的变量:
window[ "point" + key ]
这将(考虑到关键是让我们说3
)评估为window.point3
这就是你需要的。