我正在尝试传递数据库值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>
答案 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>