2016-02-29 156 views
1

我一直在玩PHP和Ajax,並試圖讓它產生我的結果。不過出於某種原因,這根本不起作用。我會用一些字寫下,沒有任何東西會出現。PHP搜索功能不顯示結果

代碼:

<script type="text/javascript"> 
     $(document).ready(function() { 
      $('.searchFunction').keyup(function(event) { 
       var search_term = $(this).attr('value'); 

     }); 
    </script> 

同樣,我真的不知道如何解決這個問題。我的數據庫名爲ing,並且該字段的名稱是ingName

+0

有什麼錯誤? – AliN11

+0

什麼也沒有,它的奇怪的 – Nevershow2016

+0

@ Nevershow2016你的代碼正在運行。檢查你的控制檯。我只是驗證它。你的查詢有問題。 –

回答

2

明白了:你沒有得到這裏的文本框的值var search_term = $(this).val();

的OP試圖讀取使用var search_term = $(this).attr('value');

有你的選擇查詢的問題,我已經更新它的文本框的值。

更新1:

<?php 
    if($_SERVER['REQUEST_METHOD']=='POST') 
    { 
     $conn=mysql_connect("localhost","root","") or die ("could not connect"); 
     mysql_select_db("test") or die ("could not find db"); 

     if (!empty($_POST['search_term'])) 
     { 

      $search_term = $_POST['search_term'] ; 

      $query = mysql_query("SELECT `ingName` FROM `ing` WHERE `ingName` LIKE '".$search_term.'%', $conn); 


      if($query) 
      { 
       while($row = mysql_fetch_assoc($query)) 
       { 
        echo '<li>'.$row['ingName'].'</li>'; 
       } 
      } 
     } 
     mysql_close($conn); 
     exit(); 
    } 
?> 

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
    <title>Dashboard</title> 
    </head> 
    <body> 

    <div class="container"> 
     <input type="text" name='search_term' class="searchFunction"> 
     <input type="submit" value="Search"> 
     <div class="dropdown"> 
      <ul class="result"></ul> 
     </div> 
    </div> 

    <script src="http://code.jquery.com/jquery-2.2.1.min.js"></script> 
    <script src="js/bootstrap.min.js"></script> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $('.searchFunction').keyup(function(event) { 
       var search_term = $(this).val(); 

       $.post(document.location.href, { search_term:search_term }, function(data) { 
        $('.result').html(data); 

        $('.result li').click(function(event) { 
         var result_value = $(this).text(); 

         $('.searchFunction').attr('value', result_value); 
         $('.result').html(''); 
        }); 
       }); 
      }); 
     }); 
    </script> 

    </body> 
+0

您能解釋一下您在這裏做了哪些更改嗎? –

+0

你試圖讀取元素中的屬性,而你想要的值'var search_term = $(this).val();' – Xorifelse

+0

tRIED這很好,但仍然沒有什麼 – Nevershow2016

1

運行在MySQL命令行查詢,並得到結果。你有迴應嗎?

下一點:你使用錯誤的連接。我的意思是,改變這種

,$row['ingName'], 

這個

. $row['ingName'] . 
+0

這可能是其中一個原因。* Good Catch * –

+0

是否應該這樣去? – Nevershow2016

+0

echo'

  • ',$ row ['ingName'],'
  • '; echo'
  • '。$ row ['ingName']。'
  • '; –

    0

    由id或class選擇文本框。在這裏我使用id來實現,當按下一個鍵時獲取文本框的值,並將輸入的值傳遞給ajax代碼。

    <?php 
        if($_SERVER['REQUEST_METHOD']=='POST') 
        { 
         $conn=mysql_connect("localhost","root","") or die ("could not connect"); 
         mysql_select_db("test") or die ("could not find db"); 
    
         if (!empty($_POST['search_term'])) 
         { 
    
          $search_term = mysql_real_escape_string($_POST['search_term']); 
    
          $query = mysql_query("SELECT `ingName` FROM `ing` WHERE `ingName` LIKE '$search_term%'", $conn); 
    
    
          if($query) 
          { 
           while($row = mysql_fetch_assoc($query)) 
           { 
            echo '<li>'.$row['ingName'].'</li>'; 
           } 
          } 
         } 
         mysql_close($conn); 
         exit(); 
        } 
    ?> 
    
    <!DOCTYPE html> 
    <html lang="en"> 
        <head> 
        <title>Dashboard</title> 
        </head> 
        <body> 
    
        <div class="container"> 
         <input type="text" name='search_term' id="search_term" class="searchFunction"> 
         <input type="submit" value="Search"> 
         <div class="dropdown"> 
          <ul class="result"></ul> 
         </div> 
        </div> 
    
        <script src="http://code.jquery.com/jquery-2.2.1.min.js"></script> 
        <script src="js/bootstrap.min.js"></script> 
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
        <script type="text/javascript"> 
         $(document).ready(function() 
         { 
          $('.searchFunction').keyup(function(event) 
          { 
           var search_term = $("#search_term").val(); 
    
           $.post(document.location.href, { search_term:search_term }, function(data) 
           { 
            $('.result').html(data); 
    
            $('.result li').click(function(event) 
            { 
             var result_value = $(this).text(); 
             $('.searchFunction').attr('value', result_value); 
             $('.result').html(''); 
            }); 
           }); 
          }); 
         }); 
        </script> 
        </body> 
    </html> 
    
    +0

    A對這個答案的解釋會更有用。在代碼中做了什麼變化以及爲什麼它會起作用。不要簡單地寫「*試試這個例子*」。 –

    +0

    這是偉大的,它實際上完美的工作,但是,做了什麼改變,突然間,所以我知道 – Nevershow2016

    +0

    編輯請檢查 –