2013-05-15 3 views
0

Я создал небольшую поисковую систему для статей в блогах в блогах, я представляю форму с помощью Ajax, а затем возвращаю результаты и заменяю старый контент новыми результатами поиска. проблема заключается в том, что если я ищу один раз, когда он работает, но если я снова ищу, он просто отображает результаты первого поиска. Любая помощь будет очень благодарна заранее!jQuery Ajax PHP Панель поиска работает только один раз

HTML

<form action="handlers/handler-search.php" class="align-right" method="post"> 
    <input type="text" name="term" placeholder="Search app reviews..."> 
    <input type="submit" value="Go"> 
</form> 

JQuery Ajax

$('form').submit(function (event) { 

    event.preventDefault(); 

    $(".content").fadeOut(750); 

    $.ajax({ 
     type: "POST", 
     url : $('form').attr('action'), 
     dataType: "json", 
     data: $("form").serialize() 
    }).done(function(data) { 

     var string = ""; 

     $.each(data, function(i,item) { 

     string += "<section class='widget six'> \ 
     <a href='index.php?art_id="+item.art_id+"'> \ 
     <div class='content'> \ 
     <h1>"+item.art_title+"</h1> \ 
     </div> \ 
     </a> \ 
     </section>"; 

     }); 

     $('.results').replaceWith(string); 
     $(".content").fadeIn(750); 
    }); 

    return false; 
}); 

PHP/SQL

if(isset($_POST['term'])) { 

$statement_search = $db->prepare("SELECT * FROM app_articles WHERE art_title LIKE :term"); 

$statement_search->setFetchMode(PDO::FETCH_ASSOC); 

$statement_search->execute(array(':term' => '%'.$_POST['term'].'%')); 

$data = $statement_search->fetchAll(); 

echo json_encode($data); 
} 

ответ

2

Вы удаляете результаты элемент, вместо этого вы должны заменить его содержимое.

$('.results').html(string); 
+0

Имеет смысл, спасибо большое! –

Смежные вопросы