下面的代码应该检查在提交表单之前是否已经使用了用户名。但是,一旦在输入中输入名称,就会重复div
元素,并且不会输出数据。有人可以使用AJAX来解决此问题吗?
php代码:
if (isset($_POST['check_username'])) {
$user_login_name = $_POST['check_username'];
$sql = "SELECT user_login_name FROM users;";
$result = mysqli_query($conn, $sql);
$rows = mysqli_fetch_array($result);
if (!empty($user_login_name)) {
foreach ($rows as $row) {
if (strpos($row, $user_login_name) != false) {
echo $row;
echo "<br>";
}
}
} else {
echo "Database empty!";
}
}
html代码:
<div class="register">
<div class="band_1">
<div class="box">
<form action="../server/register.php" method="POST">
<div class="input_table">
<table>
<thead>
<tr>
<th><h1>Register to LIMS</h1></th>
</tr>
</thead>
<tbody>
<tr>
<td><input type="text" name="user_first_name" placeholder="Enter First Name"></td>
</tr>
<tr>
<td><input type="text" name="user_last_name" placeholder="Enter Last Name"></td>
</tr>
<tr>
<td><input type="text" name="user_phone" placeholder="Enter Contact Number"></td>
</tr>
<tr>
<td><input type="email" name="user_email" placeholder="Enter Email"></td>
</tr>
<tr>
<td><input type="text" name="user_login_name" placeholder="Select a Username"><p id="test"></p></td>
</tr>
<tr>
<td><input type="password" name="user_password" placeholder="Select a Password"></td>
</tr>
<tr>
<td><input type="password" name="user_password_2" placeholder="Repeat Password"></td>
</tr>
</tbody>
</table>
</div>
<button type="submit" name="user_register" class="button_1">Register</button>
<button type="button" class="button_3">Cancel</button>
</form>
</div>
</div>
</div>
和AJAX:
$(document).ready(function() {
$("input[name=user_login_name]").keyup(function(){
var user_login_name = $("input[name=user_login_name]").val();
$.post("../server/register.php", {
check_username: user_login_name
}, function(data, status) {
$("#test").html(data);
});
});
});
答案 0 :(得分:0)
似乎,只需改进php:
1)您需要检查用户的输入是否为空,2)仅选择匹配的对象,3)最后调用die
:
if (!empty($_POST['check_username'])) {
$user_login_name = $_POST['check_username'];
$sql = "SELECT user_login_name FROM users where user_login_name like '%$user_login_name%';";
$result = mysqli_query($conn, $sql);
$rows = mysqli_fetch_array($result);
if ($rows) {
foreach ($rows as $row) {
echo "$row<br>";
}
} else {
echo "Database empty!";
}
die;
}
更新。同样,最好致电:$rows = mysqli_fetch_array($result, MYSQLI_ASSOC);
-防止两次检索额外的数据。
答案 1 :(得分:-1)
您的php代码具有更好的方法来检查数据库中是否存在用户。 只需检查查询中是否存在用户和号码,您无需使用php进行检查。
$.ajax({
});
还可以尝试连接数据:
d-sm-block
从php传递变量,您可以决定是否从javascript端显示数据。
我希望它可以帮助C: