Javascript Foreach循环只回显数据库中的一行
这就是我的代码所做的:当在类型输入字段中键入用户名时,如果键入的值与数据库表用户的行值匹配,那么我的jquery代码将起作用。然后,我的jquery代码将显示隐藏的div,其中包含键入用户名的文本。我的问题是,我当前的代码忽略了其他键入的用户名,并且由于某些原因,只会显示一个用户名。我的问题的例子:Javascript Foreach循环只回显数据库中的一行,javascript,php,jquery,Javascript,Php,Jquery,这就是我的代码所做的:当在类型输入字段中键入用户名时,如果键入的值与数据库表用户的行值匹配,那么我的jquery代码将起作用。然后,我的jquery代码将显示隐藏的div,其中包含键入用户名的文本。我的问题是,我当前的代码忽略了其他键入的用户名,并且由于某些原因,只会显示一个用户名。我的问题的例子: allen <-- "allen" is typed in input field -------- [allen] <-- hidden div for allen now s
allen <-- "allen" is typed in input field
--------
[allen] <-- hidden div for allen now shows
pete
-------- <-- "pete" is typed in input field
<-- but hidden div for pete does not show. Why?
@MohammadBagheri-以下代码的输出:
$stmt = $conn->prepare("SELECT userid, username FROM usern");
$stmt->execute();
$result = $stmt->get_result();
while($row = $result->fetch_assoc()) {
echo '<pre>'.print_r($row, 1).'</pre>';
}
$stmt->close();
我知道问题是什么 您一直在选择循环最后一次出现的userid,并在jquery代码中设置它,这意味着它将始终向用户显示该用户id,而不检查您输入的内容
如果你需要更多的帮助,请告诉我 @mohammedbagheri我非常感谢你的帮助。但出于某种原因,我正在测试你的脚本,但它似乎不起作用。是因为我的sql代码干扰了它吗?我编辑了我的问题并添加了我的sql代码。@misner3456您是否使用PDO和mySql作为连接驱动程序和数据库?@mohammedbagheri感谢您的回复。我没有使用PDO,我使用的是程序性mysqli来连接数据库。我也在使用phpmyadmin。@misner3456你能给我以下代码的输出吗:$stmt=$conn->prepareSELECT userid,usern中的username$stmt->execute$结果=$stmt->get\u结果;而$row=$result->fetch_assoc{echo;}$stmt->close;很抱歉,我完全忘记了这个问题。我对我的问题进行了编辑,以包含您刚才提供给我的代码的输出。非常感谢你坚持这个案子
$stmt = $conn->prepare("SELECT userid, username FROM usern");
$stmt->execute();
$result = $stmt->get_result();
while($row = $result->fetch_assoc()) {
$userids[] = $row['userid'];
$usernames[] = $row['username'];
}
$stmt->close();
$stmt = $conn->prepare("SELECT userid, username FROM usern");
$stmt->execute();
$result = $stmt->get_result();
while($row = $result->fetch_assoc()) {
echo '<pre>'.print_r($row, 1).'</pre>';
}
$stmt->close();
Array
(
[userid] => 35
[username] => pete
)
Array
(
[userid] => 44
[username] => allen
)
<input id="type">
<?php foreach (array_combine($userids, $usernames) as $userid => $username): ?>
<div id="border<?php echo $userid; ?>" style="display: none;">
<input id="username<?php echo $userid; ?>" value="<?php echo $username; ?>" type="radio">
<label for="username<?php echo $userid; ?>"><?php echo $username; ?></label>
</div>
<?php endforeach; ?>
$("#type").on('input',function(){
var username = $(this).val();
var userid = $("input[value='"+username+"']").attr("id");
$("div[id^=border]").css("display", "none");
$("#border"+userid).css("display", "block");
});