我想将一些php分配给一个javascript变量,如:
var goldPrice = <?php echo ResourceArray::$goldLevel[$user->getResource($data->id, "goldLevel")]?>;
但最终得到:1(而不是2000)。
这是我的问题排查:
我在php类中有一个数组:
<?php
class ResourceArray {
public static $goldLevel = array(
0, 2000, 10000
),
我试图通过几个变量分配来找到没有运气的问题:
var goldLevel = <?php $user->getResource($data -> id, "goldLevel") ?>;
var goldPrice = <?php echo ResourceArray::$goldLevel[$user->getResource($data->id, "goldLevel")]?>;
var goldPrice1 = <?php echo ResourceArray::$goldLevel[1]?>;
这写道:
var goldLevel = 1;
var goldPrice = 1;
var goldPrice1 = 2000;
最后我尝试将一个php变量分配给:
PHP: $goldLevel1 = $user->getResource($data->id, "goldLevel");
$goldLevel2 = 1;
js: var goldPrice2 = <?php echo ResourceArray::$goldLevel[$goldLevel1]?>;
var goldPrice3 = <?php echo ResourceArray::$goldLevel[$goldLevel2]?>;
最终结果如下:
var goldPrice2 = ;
var goldPrice3 = 2000;
当我回显$ goldLevel1和$ goldLevel2时,它显示1和1。
答案 0 :(得分:0)
尝试这个对我很好:
<html><body>
<?php
class ResourceArray {
public static $goldLevel = array(
0, 2000, 10000
);
}
// set gold price to second entry of goldLevel array
$goldPrice = ResourceArray::$goldLevel[1];
// check to make sure we have a valid number
if (!is_numeric($goldPrice) || $goldPrice < 1)
$goldPrice = 0;
// this outputs 2000
echo $goldPrice;
?>
<script>
var goldPrice = <?php echo $goldPrice; ?>;
alert(goldPrice);
</script>
</body></html>
答案 1 :(得分:0)
尝试使用json_encode()
像这样使用
var goldPrice = <?php echo json_encode(array(0, 2000, 10000))?>;
只需替换动态创建的数组。
答案 2 :(得分:0)
首先创建一个json变量
var jsonO = <?php echo json_encode(array(0, 2000, 10000))?>;
这将是一个json字符串,将其转换为javascript数组
var goldPrice = $.map(jsonO, function(el) { return el; })
然后使用goldPrice数组。