2013-02-28 48 views
-1

我已經上傳我的腳本小提琴,可以在這裏找到:http://jsfiddle.net/XdPk5/1/AJAX搜索不會運行

我似乎無法得到它的運行,我想補充的錯誤,如行數= 0;而當空後已發送

的javascript:

 $(document).ready(function(){ 
      $(".search").click(function(){ 
       $.post(
        "search.php", 
        { keywords: $(".keywords").val() }, 
         function(data) { 
         $("div#search").empty(); 
         obj = JSON.parse(data); 
         $("div#search").append(obj.id + " " + obj.title); 
         }, 
        "json" 
       ); 
      }); 
     }); 

PHP:

<?php 
$db = new PDO('mysql:host=localhost;dbname=db','root',''); 

$keywords = (isset($_POST['keywords']) === true) ? $_POST['keywords'] : ''; 
if (empty($keywords) === true) { 
    echo json_encode("error"); 

} else { 
    $query = $db->prepare("SELECT `media`.`id`, `media`.`title` FROM `media` WHERE `media`.`title` LIKE :keywords"); 

    if ($query->rowCount() == 0) { 
     echo 'empty'; 

    } else { 
     $query->bindValue(':keywords', '%' . $keywords . '%', PDO::PARAM_STR); 

     $arr = array(); 
     $query->execute(); 
     while($row = $query->fetch(PDO::FETCH_ASSOC)) { 
      $arr[] = array("id" => $row["id"], "title" => $row["title"]); 
     } 
     echo json_encode($arr); 
    } 
} 

?> 
+1

你應該添加你的JavaScript和PHP到你的問題。 – jeroen 2013-02-28 01:16:19

回答

1

這爲w榮:

$query = $db->prepare("SELECT `media`.`id`, `media`.`title` FROM `media` WHERE `media`.`title` LIKE :keywords"); 

if ($query->rowCount() == 0) { 
    echo 'empty'; 

} else { 
    $query->bindValue(':keywords', '%' . $keywords . '%', PDO::PARAM_STR); 
  • 沒有rowCount執行查詢之前;
  • 如果輸入了多個單詞,則需要構建添加單個關鍵字並使用ORAND將它們鏈接在一起的sql查詢。

此外,你在哪裏做echo 'empty';你沒有返回有效的json。

在javascript中,您可能的意思是dataType: "json"而不僅僅是"json",因爲這不是一個有效的選項。

+0

我真的被卡住了,就要放棄。不過謝謝。 – sw0o0sh 2013-02-28 02:23:01