获取的下拉菜单中选择项目,并在PHP
使用它,我已经从数据库中获取列表联盟(如预期该列表中填充)下面的下拉列表获取的下拉菜单中选择项目,并在PHP
<form style = "display: inline-block;" >
<select class="form-control" name ="coalition_select" onchange = "showCandidates(this.value)" method="GET">
<option id = "coalition_id" value="coalition">Coalitions</option>
<?php
include_once 'connection.php';
$sql_coalition = mysqli_query($conn, "SELECT coalition FROM candidates");
while ($row = $sql_coalition->fetch_assoc()) {
echo "<option value=\"coalition\">" . $row['coalition'] . "</option>";
}
?>
</select>
</form>
问题开始这里。在这里,我试图首先从下拉列表中获取选定的值(这是联盟的),然后使用该值显示具有类似联盟属性的用户。
这里是脚本来从下拉列表中值:
<script>
function showCandidates (str) {
if (str.length == "") {
document.getElementById("txtHint").innerHTML = "";
return;
} else {
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {
// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("txtHint").innerHTML = this.responseText;
}
};
xmlhttp.open("GET","includes/admin.users.list.inc.php?q="+str,true);
xmlhttp.send();
}
}
</script>
这里是admin.users.list.inc.php文件
<body>
<?php
$q = $_GET['q'];
$conn = mysqli_connect('localhost','root','','voting');
if (!$conn) {
die('Could not connect: ' . mysqli_error($conn));
}
mysqli_select_db($conn,"osako_Voting");
$sql="SELECT * FROM candidates WHERE coalition = '".$q."'";
$result = mysqli_query($conn,$sql);
echo "<table>
<tr>
<th>Firstname</th>
<th>Lastname</th>
<th>Coalition</th>
<th>Email</th>
</tr>";
while($row = mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td>" . $row['firstname'] . "</td>";
echo "<td>" . $row['lastname'] . "</td>";
echo "<td>" . $row['coalition'] . "</td>";
echo "<td>" . $row['email'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysqli_close($conn);
?>
</body>
的问题似乎因为我无法设置变量$q
以便捕获选定的值。现在,因为它被设置好了,它似乎捕获索引而不是价值本身。这怎么能正确完成?如果是的任何帮助,我用这个教程作为指导 https://www.w3schools.com/php/php_ajax_database.asp
IN夏日: 如果我们有一个已被动态填充使用PHP脚本一个下拉列表。如何可以使用ajax获取选定的值,并在另一个php脚本中使用该值。
感谢
看来问题是此行中:
echo "<option value=\"coalition\">" . $row['coalition'] . "</option>";
你传递的选择值showCandidates(),通过AJAX传递,但你设置选项值始终是静态的“联盟”,而不是你从数据库中获取的动态值。 也许你应该行更改为
echo "<option value=\"" . $row['coalition'] . "\">" . $row['coalition'] . "</option>";
谢谢你是正确的! – jimiss
你不设置value
到value attribute
。您只需设置所有选项常量字符串值coalition
while ($row = $sql_coalition->fetch_assoc()) {
echo "<option value=\"$row['coalition']\">" . $row['coalition'] . "</option>";
}
我知道你已经接受一个答案,但我困惑的是这一点; 在你的函数你有这样的
document.getElementById("txtHint").innerHTML = "";
但你没有任何形式的元素与ID "txtHint"
那么哪些因素正在排序与ID?
不明白的问题,在我看来。请让它易于理解并清除“你的问题是什么” – vietnguyen09
@ vietnguyen09如果我们有一个使用php脚本动态填充的下拉列表。如何可以使用Ajax获取选定的值,并在另一个PHP脚本中使用所述值 – jimiss
所以,你只是想要在'选择框'中的javascript选择值? – vietnguyen09