Javascript没有替换PHP脚本中的InnerHTML

时间:2014-07-04 06:56:38

标签: javascript php arrays printing innerhtml

我最近一直在制作一个Garry的Mod加载屏幕,基本上我试图简化'地图名称替换为短语。但是,PHP似乎没有打印数组值。

$map = $_GET["map"];
$map_list = array (
    "gm_construct" => "Construct",
    "gm_flatgrass" => "Flatgrass"
);
if (in_array($map, $map_list) == true)
{
    if ($map == $map_list[1])
    {
        print("<script>document.getElementById('map_name').innerHTML = '" . print($map_list['gm_construct']) . "'</script>");
    }
    else if ($map == $map_list[2])
    {
        print("<script>document.getElementById('map_name').innerHTML = '" . print($map_list['gm_flatgrass']) . "'</script>");
    }
}

3 个答案:

答案 0 :(得分:0)

关于如何访问关联数组$map_list的几个问题。使用以下内容:

<?php
$map = "Flatgrass"; // $_GET["map"];
$map_list = array (
    "gm_construct" => "Construct",
    "gm_flatgrass" => "Flatgrass"
);
$key = array_search($map, $map_list);
if ($key !== false) {
    print("<script>document.getElementById('map_name').innerHTML = '" . $map_list[$key] . "'</script>");
}

如果$_GET值在$map_list中有一个键,则只需直接使用它来打印脚本。

不要在连接字符串中调用print()它直接输出到标准输出,不返回字符串)。而且,这会减少您的代码,只需使用一个if语句使用直接传入的值打印出脚本。

而且,在原始代码中,您不能使用整数对$map_list进行索引,因为您只使用字符串键使其成为关联数组。

答案 1 :(得分:0)

您应该尝试以下代码: -

$map = $_GET["map"];
$map_list = array (
    "gm_construct" => "Construct",
    "gm_flatgrass" => "Flatgrass"
);
if (in_array($map, $map_list) == true)
{
    if ($map == $map_list["gm_construct"])
    {
        print("<script>document.getElementById('map_name').innerHTML = '" . print($map_list['gm_construct']) . "'</script>");
    }
    else if ($map == $map_list["gm_flatgrass"])
    {
        print("<script>document.getElementById('map_name').innerHTML = '" . print($map_list['gm_flatgrass']) . "'</script>");
    }
}

答案 2 :(得分:0)

你应该改变

print("<script>document.getElementById('map_name').innerHTML = '" . print($map_list['gm_construct']) . "'</script>");

print("<script>document.getElementById('map_name').innerHTML = '{$map_list['gm_construct']}'</script>");

或者您可以使用

echo '<script>document.getElementById("map_name").innerHTML = "', $map_list['gm_construct'] ,  '"</script>';

更好。