У меня есть живой поиск для номеров медицинских карт. Он связан с базой данных MySQL и по большей части работает ... Kinda. Я сталкиваюсь с проблемой, когда некоторые строки чисел, похоже, придают ей проблемы, такие как 12345689999 (мой семь ключей сломаны). Кажется, это появляется, когда одни и те же символы используются повторно друг за другом. Тип данных в моей базе данных для HCN - это текст. Мой код выглядит следующим образом:JQuery, ajax, PHP - Живой поиск, не возвращающий значения в некоторых ситуациях
HTML
<div class="container-fluid">
<div class="jumbotron">
<h1 class="display-3">Search Patient Using Health Card Number</h1>
<hr class="m-y-2">
<p class="lead">
<input type="text" class="form-control" id="hcnSearch" aria-describedby="hcn" placeholder="Search health card number">
</p>
</div>
<div id="result">
</div>
</div>
Jquery/AJAX
$(document).ready(function(){
$("#hcnSearch").keyup(function() {
var txt =$(this).val();
if (txt != '') {
$('#result').html('');
$.ajax({
url:"fetch2.php",
method: "post",
data:{search2:txt},
dataType:"text",
success:function(data)
{
$('#result').html(data);
}
});
} else {
$('#result').html('');
}
});
});
В моей fetch2.php Файл
<?php
session_start();
include("connection.php");
$output = '';
$sql = "SELECT * FROM PATIENT_ID_DEMO WHERE H_CARD_NUMBER LIKE '%".mysqli_real_escape_string($link, $_POST["search2"])."%'";
$result = mysqli_query($link, $sql);
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_array($result)) {
if ($row[5] == 1) {
$row5 = "Yes";
} else {
$row5 = "No";
}
if ($row[8] == "M") {
$row8 = "Male";
} else {
$row8 = "Female";
}
$output .= '<h4 align="center">Search Result</h4>';
$output .= '<div class="table-responsive">
<table class="table table bordered">
<tr>
<th>First Name</th>
<th>Last Name</th>
<th>Middle Name</th>
<th>DOB</th>
<th>NS health card</th>
<th>Health card number</th>
<th>Gender</th>
<th>Age</th>
<th>UID</th>
</tr>';
while($row = mysqli_fetch_array($result))
{
$output .= '
<tr>
<td>'.$row[1].'</td>
<td>'.$row[2].'</td>
<td>'.$row[3].'</td>
<td>'.$row[4].'</td>
<td>'.$row5.'</td>
<td>'.$row[7].'</td>
<td>'.$row8.'</td>
<td>'.$row[9].'</td>
<td>'.$row[10].'</td>
</tr>
';
}
echo $output;
}
} else {
echo "No data found...";
}
?>
Этот код позволяет мне ввести (поиск) 12345689, и запрос покажет некоторые соответствующие номера карт здоровья, однако, если я ищу12345689999, и я набираю второй 9 ... все поиски уходят.
Есть ли значение в дБ для for1234568999 –
Да есть, что значение даже проявляется тогда disapears когда вторые девять вводятся @KARTHISRV – Lenny