无法使用PHP将两个字符串一起发送到JavaScript

时间:2016-06-30 16:12:54

标签: javascript php html ajax string

我正在尝试传递数据库值javascript / ajax。如果直接发送它运作良好,

我正在尝试从数据库做同样的事情。还有一些它不起作用。

我正在向这样的脚本发送选项的值,

<select name="users" onchange="showUser(this.value)">

当我像这样直接发送值时,它会在脚本中显示正确的值。

<option value="Peter Grif">Peter Griffin</option>

脚本结果是= Peter Grif

如果我从数据库中获取相同内容,就像这样。

while($row=$select->fetch_assoc())
         {
            echo "<option value=".$row['name'].">".$row['name']."</option>";
         }

在下拉框中,它正好与“Peter Grif”这样的全名一起使用

但是剧本结果是=“彼得”这个名字的第二部分在空间永远不会到来之后。

完整计划:

  <html>
<head>
<script>
function showUser(str) {
    window.alert(str);

}
</script>
</head>
<body>
<body>

<form>


    <center> <select name="users" onchange="showUser(this.value)"> </center>

    <option value="Peter Grif">Peter Griffin</option>
    <option value="Lois Griff">Lois Griffin</option>

        <?php
             include("connection.php");
             $select=$con->query("select name from users group by name");

             while($row=$select->fetch_assoc())
             {
                echo "<option value=".$row['name'].">".$row['name']."</option>";
             }

        ?>  

    </select> 

</form>

<br>

</body>
</html>

2 个答案:

答案 0 :(得分:0)

echo "<option value=".$row['name'].">".$row['name']."</option>";

需要引用期权价值。你最终得到了

<option value=Peter Grif>Peter Grif</option>

需要引用,所以它最终会像

一样
<option value='Peter Grif'>Peter Grif</option>

所以要么

    echo "<option value='".$row['name']."'>".$row['name']."</option>";

或者

    echo "<option value='{$row['name']}'>{$row['name']}</option>";

(您可以通过大括号括起来引用双引号内的数组,我觉得它比串联更容易阅读,所以在回显HTML时你不会引起混淆,但它只是我的偏好)。

在页面上执行查看源可以帮助确保生成的HTML有效。

答案 1 :(得分:0)

我在while循环中修改了你的代码,它可以按你的意愿工作。它是报价问题。

  <html>
    <head>
    <script>
    function showUser(str) {
        window.alert(str);

    }
    </script>
    </head>
    <body>
    <body>

    <form>


        <center> <select name="users" onchange="showUser(this.value)"> </center>

        <option value="Peter Grif">Peter Griffin</option>
        <option value="Lois Griff">Lois Griffin</option>

            <?php
                 include("connection.php");
                 $select=$con->query("select name from users group by name");

                 while($row=$select->fetch_assoc())
                 {
                    echo '<option value="'.$row['name'].'">'.$row['name'].'</option>';
                 }

            ?>  

        </select> 

    </form>

    <br>

    </body>
    </html>