获取下拉菜单中的选定项并在php中使用它
我有一个从数据库中获取列表联盟的下拉列表(该列表按预期填充)获取下拉菜单中的选定项并在php中使用它,php,jquery,ajax,Php,Jquery,Ajax,我有一个从数据库中获取列表联盟的下拉列表(该列表按预期填充) 联盟 问题从这里开始。在这里,我试图首先从下拉列表中获取所选的值(位于联盟的右侧),然后使用该值显示具有类似联盟属性的用户 以下是从下拉列表中获取值的脚本: <script> function showCandidates (str) { if (str.length == "") { document.getElementById("txtHint").innerHTM
联盟
问题从这里开始。在这里,我试图首先从下拉列表中获取所选的值(位于联盟的右侧),然后使用该值显示具有类似联盟属性的用户
以下是从下拉列表中获取值的脚本:
<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>
功能表(str){
如果(str.length==“”){
document.getElementById(“txtHint”).innerHTML=“”;
返回;
}否则{
if(window.XMLHttpRequest){
//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}否则{
//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
xmlhttp.onreadystatechange=函数(){
if(this.readyState==4&&this.status==200){
document.getElementById(“txtHint”).innerHTML=this.responseText;
}
};
open(“GET”,“includes/admin.users.list.inc.php?q=“+str,true”);
xmlhttp.send();
}
}
这是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
,以便它捕获所选的值。现在,当它被设置时,它似乎捕获了索引而不是值本身。如何正确地做到这一点?如果有任何帮助,我将使用本教程作为指导
简言之:
如果我们有一个使用php脚本动态填充的下拉列表。如何使用ajax获取所选值并在另一个php脚本中使用所述值
谢谢问题似乎出在这一排:
echo "<option value=\"coalition\">" . $row['coalition'] . "</option>";
echo”“$第[‘联盟’]行。"";
您将select值传递给showPendidates(),该值将通过AJAX传递,但您将选项值设置为始终为静态“联盟”,而不是从DB获取的动态值。
也许你应该把这一行改成
echo "<option value=\"" . $row['coalition'] . "\">" . $row['coalition'] . "</option>";
echo”“$第[‘联盟’]行。"";
问题似乎出在这一行:
echo "<option value=\"coalition\">" . $row['coalition'] . "</option>";
echo”“$第[‘联盟’]行。"";
您将select值传递给showPendidates(),该值将通过AJAX传递,但您将选项值设置为始终为静态“联盟”,而不是从DB获取的动态值。
也许你应该把这一行改成
echo "<option value=\"" . $row['coalition'] . "\">" . $row['coalition'] . "</option>";
echo”“$第[‘联盟’]行。"";
您没有将值设置为值属性
。您只需为所有选项值设置常量字符串coalition
while ($row = $sql_coalition->fetch_assoc()) {
echo "<option value=\"$row['coalition']\">" . $row['coalition'] . "</option>";
}
while($row=$sql\u-coalition->fetch\u-assoc()){
回显“$row['coalition']”;
}
您没有将值设置为值属性
。您只需为所有选项值设置常量字符串coalition
while ($row = $sql_coalition->fetch_assoc()) {
echo "<option value=\"$row['coalition']\">" . $row['coalition'] . "</option>";
}
while($row=$sql\u-coalition->fetch\u-assoc()){
回显“$row['coalition']”;
}
我知道你已经接受了答案,但对此我感到困惑;
在你的功能中,你有这个
document.getElementById(“txtHint”).innerHTML=“”代码>
但是您没有id为“txtHint”
那么,是什么元素用这个ID排序呢?我知道你已经接受了答案,但我对此感到困惑;
在你的功能中,你有这个
document.getElementById(“txtHint”).innerHTML=“”代码>
但是您没有id为“txtHint”
那个么,用那个ID对什么元素进行排序呢?在我看来,这个问题还不清楚。如果我们有一个使用php脚本动态填充的下拉列表,请使其易于理解和清楚@vietnguyen09“您的问题是什么”。如何使用ajax获取所选值并在另一个php脚本中使用所述值?因此,您只想使用javascript获取选择框中的所选值
?为什么在选择标记中使用方法='get'
?@vietnguyen09是,然后在另一个php文件中使用该值,我将在其中显示用户在我看来,这是一个不清楚的问题。如果我们有一个使用php脚本动态填充的下拉列表,请使其易于理解和清楚@vietnguyen09“您的问题是什么”。如何使用ajax获取所选值并在另一个php脚本中使用所述值?因此,您只想使用javascript获取选择框中的所选值
?为什么在选择标记中使用方法='get'
?@vietnguyen09是,然后在另一个php文件中使用该值,我将在其中显示用户表中的信息