1

投稿が空の場合、エラーを投稿するようにスクリプトを検出させる必要があります。現在、投稿が空の場合、すべての結果が投稿されます。

私のコード

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

$keywords = (isset($_POST['keywords']) === true) ? $_POST['keywords'] : '';
$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 );

?>

そして私のスクリプト

$(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");
    });
});
4

1 に答える 1

2

これを追加:

if(empty( $keywords ) ) {
     // Show some error
}
else{

   // your search code here ...
}

ただし、投稿する前にJSでもチェックすることをお勧めします

于 2013-02-27T01:30:39.673 に答える