当onclick on div并且无法将参数化链接作为innerHTML时,无法将字符串从php传递到javascript

时间:2017-11-28 09:32:26

标签: javascript php html css

我想在点击另一个div中的不同文本时加载文件。我有5个div。而且我还需要在所有div中修复一些默认内容。 div应该覆盖并在单击另一个div中的文本时调用该文件。当我点击左侧div中的文本时,我可以在两个不同的文件中调用两个文件。但是当我尝试将字符串从PHP传递给javascript时,我无法做到这一点。我想参数化到不同文本的链接。我怎样才能做到这一点?如果我尝试将PHP变量分配给它,则输出中没有任何内容。提前谢谢。

 <html>
<head>
    <title>A div layout</title>
</head>

<body>

    <script>
            function load_home(link){

                document.write(link);

                var project="<?php echo $name; ?>";

                var table_link='table_'+link+'.php';

                var graph_link='graph_'+link+'.php';


                document.getElementById("tables").innerHTML='<object type="type/html" data="table_link" height=100% width=100%></object>';
                document.getElementById("graph").innerHTML='<object type="type/html" data="graph_link" height=100% width=100%></object>';

            }
    </script>

    <div id="header" style="width: 100%; height:7%; background-color: green; color: white;">Merahkee Tech Solutions
    </div>

    <div id="tree" style="width: 20%; height:88%; background-color: pink; color: white; float:left">
    <?php
    $name="customer";
        echo '<nav>
          <ul>
            <li><a href ="#" onclick="load_home('.$name.')">Pebble</a></li>
            <li><a href ="#" onclick="load_home()">Jenkins</a></li>
            <li><a href ="#" onclick="load_home()">Tomcat</a></li>
            <li><a href ="#" onclick="load_home()">Jira</a> </li>
          </ul>
        </nav>'
    ?>
    </div>

    <div id="tables" style="width: 80%; height:35%; background-color: skyblue; color: white; float:left">This is default content

    </div>

    <div id="graph" style="width: 70%; height:53%; background-color: lightblue; color: white; float:left">This is trial graph div
    </div>

    <div id="dropdown" style="width: 10%; height:53%; background-color: pink; color: white; float:left">This is trial dropdown div
    </div>

    <div id="footer" style="width: 100%; height:5%; background-color: green; color: white; float:left">This is a footer div
    </div>


</body>

现在,当我点击第一个div中的文字时,我没有得到任何东西。

2 个答案:

答案 0 :(得分:0)

当你将它传递给javascript函数时,你需要把你的字符串放在'或'中,这样函数就知道你正在发送字符串 所以你代替:

echo '<nav>
          <ul>
            <li><a href ="#" onclick="load_home('.$name.')">Pebble</a></li>
            <li><a href ="#" onclick="load_home()">Jenkins</a></li>
            <li><a href ="#" onclick="load_home()">Tomcat</a></li>
            <li><a href ="#" onclick="load_home()">Jira</a> </li>
          </ul>
        </nav>';
你做了:

echo "<nav>
          <ul>
            <li><a href =\"#\" onclick=\"load_home('{$name}')\">Pebble</a></li>
            <li><a href =\"#\" onclick=\"load_home()\">Jenkins</a></li>
            <li><a href =\"#\" onclick=\"load_home()\">Tomcat</a></li>
            <li><a href =\"#\" onclick=\"load_home()\">Jira</a> </li>
          </ul>
        </nav>";

将你的剧本放在身体的最后

答案 1 :(得分:0)

<html>
<head>
    <title>A div layout</title>
    <script type="text/javascript">
        function load_home(link) {

            document.write(link);

            var project=link;

            var table_link='table_'+link+'.php';
            var graph_link='graph_'+link+'.php';


            document.getElementById("tables").innerHTML='<object type="type/html" data="table_link" height=100% width=100%></object>';
            document.getElementById("graph").innerHTML='<object type="type/html" data="graph_link" height=100% width=100%></object>';

        }
    </script>
</head>

<body>

    <div id="header" style="width: 100%; height:7%; background-color: green; color: white;">
        Merahkee Tech Solutions
    </div>

    <div id="tree" style="width: 20%; height:88%; background-color: pink; color: white; float:left">

        <?php $name = "customer"; ?>
        <nav>
            <ul>
                <li><a href ="#" onclick="load_home('<?php echo $name ?>');">Pebble</a></li>
                <li><a href ="#" onclick="load_home('<?php echo $name ?>');">Jenkins</a></li>
                <li><a href ="#" onclick="load_home('<?php echo $name ?>');">Tomcat</a></li>
                <li><a href ="#" onclick="load_home('<?php echo $name ?>');">Jira</a></li>
            </ul>
        </nav>
    </div>

    <div id="tables" style="width: 80%; height:35%; background-color: skyblue; color: white; float:left">
        This is default content
    </div>

    <div id="graph" style="width: 70%; height:53%; background-color: lightblue; color: white; float:left">
        This is trial graph div
    </div>

    <div id="dropdown" style="width: 10%; height:53%; background-color: pink; color: white; float:left">
        This is trial dropdown div
    </div>

    <div id="footer" style="width: 100%; height:5%; background-color: green; color: white; float:left">
        This is a footer div
    </div>
</body>
</html>

在您的代码段中,我看到单/双引号问题,请尝试粘贴我的整个代码段。

<li><a href ="#" onclick="load_home('<?php echo $name ?>');">Pebble</a></li>

请参阅&#39; <?php echo $name; ?> &#39; 围绕PHP变量的单引号。