gpt4 book ai didi

javascript - 选择下拉列表时生成更多 MYSQL 数据库结果

转载 作者:行者123 更新时间:2023-11-29 12:46:54 25 4
gpt4 key购买 nike

希望能帮到你

我想要一个下拉列表来搜索我的 mysql 数据库并显示用户的名字和姓氏。然后,您可以选择任何名称,它将生成其余的成员(member)详细信息(即注册日期、上次登录日期等)。

我的下拉列表工作正常,但我的问题来自生成其余详细信息的下一步。使用下面的代码,它仅显示最后一个注册用户的详细信息,并且当我更改下拉菜单中的名称时不会更改。

我很确定我需要 Javascript 来帮助完成这项工作,但由于我是 PHP/MYSQL 的初学者,任何对我来说正确方向的建议都会很棒。谢谢

这是搜索我的数据库并将名字和姓氏放入下拉列表中的代码

$sql = "SELECT first_name,last_name FROM registration_tbl";
$query = mysqli_query($dbc, $sql);
echo '<select name="name" style="width: 400px">';
while ($row = mysqli_fetch_assoc($query)){
$firstname = $row['first_name'];
$lastname = $row['last_name'];
echo'<option>' . $firstname . " " . $lastname . '</option>';
}
echo '</select> <p>';

上面的代码工作正常,但下面的代码是我遇到的困难

$sql = "SELECT * FROM registration_tbl WHERE first_name = '".$firstname."'";
$query = mysqli_query($dbc, $sql);
while($row = mysqli_fetch_array($query)){
echo "ID: " . " " . $row[0] . "<br>" .
"Name: " . $row[1] . " " . $row[2] . "<br>" .
"Company: " . $row[3] . "<br> " .
"Email: " .$row[4] . "<br> " .
"Date of registration: " . $row[6] . "<br> " .
"Last login: " .$row[7] . "<br>" .
"Admin/User: " .$row[8] . "<p>";
}

最佳答案

如果你不想使用AJAX动态加载内容,你需要一个表单来提交数据,你的问题是在你的第一个循环之后,$firstname是最后一个加载到的用户,以使你的代码工作,你需要一个表格。

只需将选择放入表单中并添加一个按钮

    <form action="mypage.php" method="get">
<select name="name" style="width: 400px">
<?php
$sql = "SELECT first_name,last_name FROM registration_tbl";
$query = mysqli_query($dbc, $sql);
while ($row = mysqli_fetch_assoc($query)){
$firstname = $row['first_name'];
$lastname = $row['last_name'];
echo'<option>' . $firstname . " " . $lastname . '</option>';
}
?>

</select>
<input type="submit" value="Load User Data">
</form>

然后在 mypage.php 中您需要检查表单是否已提交,并显示用户详细信息。

<?php
if(isset($_GET["name"])) {
//this form is posted, show user details
//$firstname = $_GET["name"]; <--- SQL Injection enabled here!!
$firstname = mysqli_real_escape_string($_GET["name"]); // please try to avoid SQL injection!
//your code continues here
$sql = "SELECT * FROM registration_tbl WHERE first_name = '".$firstname."'";
$query = mysqli_query($dbc, $sql);
while($row = mysqli_fetch_array($query)){
echo "ID: " . " " . $row[0] . "<br>" .
"Name: " . $row[1] . " " . $row[2] . "<br>" .
"Company: " . $row[3] . "<br> " .
"Email: " .$row[4] . "<br> " .
"Date of registration: " . $row[6] . "<br> " .
"Last login: " .$row[7] . "<br>" .
"Admin/User: " .$row[8] . "<p>";
}

}

最后一点,如果您不希望用户名出现在查询字符串中,请将表单操作更改为 post,并使用 $_POST["name"] 获取变量

编辑:如果您希望表单使用 javascript 自动发布,请将其添加到您的选择定义中:

<select name="name" style="width: 400px" onchange="this.form.submit()">

但请记住,很多用户阻止 JavaScript,因此这不起作用。

关于javascript - 选择下拉列表时生成更多 MYSQL 数据库结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25304663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com