javascript - JS(jquery)自动搜索不拉 MySQL 数据
问题描述
我想为私人消息实现一个小型用户自动搜索功能。我找不到以下代码不起作用的原因。JS Ajax 每次都在 .fail 节点中结束,尽管 DB 中有一个用户,例如以“m”开头。
js:
$($userSearchForm).on('keyup', function () {
var $query = $('#userSearch').val();
$
.ajax({
url: '../../../rest/restEndPoints/Privatemessage.php',
type: 'POST',
data: $query
})
.done(function (response) {
console.log(response);
})
.fail(function (error) {
console.log('Username not found', error);
});
});
Privatemessage.php REST 端点:
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST["userSearchForm"])) {
$query = $_POST["userSearch"];
$queryResult = Privatemessage::searchByUsername($conn, $query);
$response = ['success' => $queryResult];
}
类私人消息
static public function searchByUsername(PDO $pdo, $userName) {
$stmt = $pdo->prepare("SELECT u.username FROM Users u WHERE userName LIKE CONCAT('%',:userName,'%')");
$result = $stmt->execute([
'userName' => $userName
]);
$ret = [];
if ($result === true && $stmt->rowCount() > 0) {
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$loadedUsername = new Privatemessage($pdo);
$loadedUsername->userName = $row['username'];
$ret[] = $loadedUsername;
}
return $ret;
}
return null;
}
privateMessage.php 子页面上的 HTML:
<form class="form-user-search" id="userSearchForm" action="" method="post">
<div class="form-group">
<label for="userSearch">Find user</label>
<input name="userSearch" id="userSearch" class="form-control" placeholder="Find user" autofocus>
<input name="newPrvMessage" id="newPrvMessage" class="form-control" placeholder="Type in message" autofocus>
<div id="userSearch" style="display:none;"></div>
<button class="btn btn-default btn-block" type="submit" id="userSearchButton">Submit new private message</button>
</div>
</form>
尽管“未找到”类,子页面仍会正确提取已发送/接收的消息(rest.php文件动态包含 .php 类/端点,具体取决于您通过导航栏输入的子页面)
解决方案
推荐阅读
- node.js - 我应该如何将 nginx 配置为在 tcp 服务器前作为反向代理 websocket 服务器运行?
- python-3.x - 如何单独打开第二个 ptinker 窗口而不是作为选项卡
- powershell - 信息:尝试将文件“OEMFMFileList.xml”加载为 FM 文件列表...致命错误:错误:缺少包 - 创建基本的 IoT Core Image Powershell
- html - Webpack 4 - HTML 部分
- angular - ngx-permissions - html 中没有硬编码的权限名称
- javascript - 在传单绘制上删除多个图层
- mysql - 在最后一个分组行上获取具有条件的行
- mysql - 如何遍历字段中的逗号分隔值以在 MySQL 的其他表中创建新行
- sql - 需要帮助整理我的多个子查询的 JOIN 语句
- database - 访问 ACCDB,R Stuido 64 位连接错误