Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取下拉菜单中的选定项并在php中使用它_Php_Jquery_Ajax - Fatal编程技术网

获取下拉菜单中的选定项并在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文件中使用该值,我将在其中显示用户表中的信息