2013-02-27 96 views
0

我需要兩件事情的幫助。 第一:如果我點擊空提交按鈕。它應該顯示我一個錯誤。 第二:如果有0個結果,它會給出錯誤。Ajax搜索帖子錯誤

$(document).ready(function(){ 
    $(".search").click(function(){ 
     $.post("search.php", { keywords: $(".keywords").val() }, function(data){ 
      $("div#search").empty() 
      $.each(data, function(){ 
       $("div#search").append("- <a href='#?id=" + this.id + "'>" + this.title + "</a><br>"); 
      }); 
     }, "json"); 
    }); 
}); 

-

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

$keywords = (isset($_POST['keywords']) === true) ? $_POST['keywords'] : ''; 

if (empty($keywords) === true) { 
    $error = 'error'; 
    echo json_encode($error); 
} 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); 
} 
+0

笏你的意思是「如果我點擊空提交按鈕。」? – 2013-02-27 13:56:05

+0

也許錯誤信息可能會有所幫助。發表它。 – Ghigo 2013-02-27 13:59:02

+0

http://jsfiddle.net/Vpxrx/我的腳本 – sw0o0sh 2013-02-27 15:27:21

回答

1

OK我刻意重建(的jsfiddle不會讓你複製/粘貼),這是我的本地機器上。你的HTML/JS代碼應該是這樣的:

<html> 
    <head> 
     <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
    </head> 
    <body> 
     <input type="text" name="search" class="keywords"> 
     <input type="submit" name="submit" class="search"> 
     <div id="search"></div> 
     <script> 
      $(document).ready(function(){ 
       $(".search").click(function(){ 
        $.post(
         "search.php", 
         { keywords: $(".keywords").val() }, 
         function(data){ 
           $("div#search").empty() 
          $("div#search").append(data); 
         }, 
         "json" 
        ); 
       }); 
      }); 
     </script> 
    </body> 
</html> 

而對於PHP的search.php頁面:

<?php 
$keywords = (isset($_POST['keywords']) === true) ? $_POST['keywords'] : ''; 
if (empty($keywords) === true) { 
    echo json_encode("error"); 
} 
else { 
    // run mysql commands 
    // if resultset == empty 
    // echo json_encode("error"); 
    echo json_encode("actual data"); 
} 
?> 

要解析的JSON數據在JavaScript這樣做:

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

發佈仍然不顯示任何內容 – sw0o0sh 2013-02-27 15:15:54

+0

http://jsfiddle.net/Vpxrx/ – sw0o0sh 2013-02-27 15:28:05

+0

您的php代碼不會檢查該jsfiddle中的任何排序行數。嘗試擺脫php代碼(註釋全部出來),然後做一個「echo json_encode('test');」看看PHP頁面是否返回這個。 – Husman 2013-02-27 15:39:41

0

嘗試使用$(this)代替this