for循环将javascript变量=设置为php变量

时间:2016-02-09 17:19:10

标签: javascript php arrays loops variables

我正在开发一个项目,需要在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 } ?>

3 个答案:

答案 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)

首先在查询部分中,声明一个变量来保存您想要的结果。我假设您的表格中M1mcIDtext1mcName。例如:

$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);