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

问题描述:

我想通过数据库值javascript/ajax。如果直接发送,效果很好,无法发送两个字符串一起使用PHP到JavaScript

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

我送的选项,这样的脚本的价值,

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

,当我直接发送值这样的,它显示脚本正确的值。

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

脚本结果=彼得GRIF

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

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

在下拉框中它究竟包含“彼得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> 
+1

'回声 “” $行[' 名称'] “”;' – Rayon

我在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> 
+0

哇!!伟大的工作。我为此浪费了3个小时:(谢谢老兄 –

+0

)欢迎您,请将它标记为正确的一个,我会得到一些结论或给它一个分数:D:D,无论如何,你很害怕 –

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是否有效。