我正在一个需要在JavaScript中使用PHP值创建数百个变量的项目。我可以这样写每一行:
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数组:
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 } ?>
最佳答案
首先,在查询部分中,声明一个变量以保存所需的结果。我假设表中的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
中访问类似的元素。关于javascript - for循环将javascript变量=设置为php变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35298173/