2016-07-28 3 views
0

У меня есть живой поиск для номеров медицинских карт. Он связан с базой данных 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 ... все поиски уходят.

+0

Есть ли значение в дБ для for1234568999 –

+0

Да есть, что значение даже проявляется тогда disapears когда вторые девять вводятся @KARTHISRV – Lenny

ответ

0

изменить метод в GET

$.ajax({ 
     url:"fetch2.php", 
     method: "GET", 
     data:{search2:txt}, 
     dataType:"text", 
     success:function(data) 
     { 
      $('#result').html(data); 
     } 
     });