我正在开发一个项目,需要在PHP值中使用javascript创建数百个变量。我可以逐行写出每一行:
var M1 = <?php echo json_encode($$mn[0]); ?>;
var M2 = <?php echo json_encode($$mn[1]); ?>;
var M3 = <?php echo json_encode($$mn[2]); ?>;
正如我所说的那样,有数百种这样的,如果有可能循环,我会对学习很感兴趣。我已经搜遍过,无法找到直接的答案。很可能这是不可能的。我是编码的新手,仍然在学习某些代码可以做什么和不能做什么。
非常感谢有关此主题的任何见解或指导!
如果这不是一个选项,是否可以为javascript变量名使用数组索引?我已经为JS和PHP创建了一个数组。 PHP工作正常,但如果我尝试使用JS的数组索引,如下所示,它会破坏:
var mcirc[0] = <?php echo json_encode($$mn[0]); ?>;
我输出了数组并且值正确显示但是当我运行它时,我收到消息:
[object HTMLDivElement]
而不是应显示的实际值。
更新
$ mn array:
for ($m1 = 1; $m1 < 6; $m1++) {
$mn[] = 'M'.$m1;
}
更新
选择SQL创建数组:
$sqlMC = "SELECT * FROM tblmaincircles";
$result = $conn->query($sqlMC);
while($row = $result->fetch_assoc()) {
$$row["mcID"]= $row["mcName"];
}
mcID的数组如下所示:
M1 = "text1"
M2 = "text2"
M3 = "text3"
M4 = "text4"
M5 = "text5"
更新
最终结果:
var M1 = "text1";
var M2 = "text2";
var M3 = "text3";
var M4 = "text4";
var M5 = "text5";
其中“text1,... 2,... 3,... 4,... 5”来自MySQL数据库。
更新
以下是最终的代码:
$sqlMC = "SELECT mcID, mcName FROM tblmaincircles";
$result = $conn->query($sqlMC);
while($row = $result->fetch_assoc()) {
$mcID[] = $row["mcID"];
$mcName[] = $row["mcName"];
}
<?php for ($m1 = 0; $m1 <5; $m1++) { ?>
var <?php echo $mcID[$m1]; ?> = <?php echo json_encode($mcName[$m1]); ?>;
<?php } ?>
答案 0 :(得分:2)
简单地将JSON放入变量
var json = <?php echo json_encode($$mn); ?>;
然后处理您想要的JSON方式:
例如
var json=[{key:someValue},
{key:someValue2},
{key:someValue3}
];
json.forEach(function(a){
console.log(a.key);
})
答案 1 :(得分:1)
首先在查询部分中,声明一个变量来保存您想要的结果。我假设您的表格中M1
为mcID
,text1
为mcName
。例如:
$sqlMC = "SELECT * FROM tblmaincircles";
$result = $conn->query($sqlMC);
$mac = [];//or $mac = array(); Depends on your PHP version.
while($row = $result->fetch_assoc()) {
$mac[$row["mcID"]] = $row["mcName"];
}
然后,使用$mac
循环遍历foreach
数组。我假设你在HTML中使用PHP代码。 $key
将是mcID
,$value
将是mcName
。
//php tag for the foreach opening
<?php foreach ($mac as $key => $value) { ?>
var <?php echo $key; ?> = <?php echo "'$value';"; ?>
//php tag for the foreach closing
<?php } ?>
或者,如果你想使用javascript关联数组。
var macJs = {};
<?php foreach ($mac as $key => $value) { ?>
macJs.<?php echo $key; ?> = <?php echo "'$value';"; ?>
<?php } ?>
你可以在javascript macJs.M1
中访问这样的元素。
答案 2 :(得分:0)
您应该使用JSON来导出&#39;你的对象/数组通过不同的语言,在这种情况下:
var json = '<?= json_encode($your_array); ?>';
在此之后你可以解析这个Json,应该返回你的数组:
var your_array = JSON.parse(json);