передача параметра поиска через jquery - PullRequest
3 голосов
/ 27 июля 2010

У меня есть форма, в которой, если пользователь вводит поисковый запрос, его параметр должен быть передан через jquery, и после получения результатов он должен загрузить результаты в контейнер div. так как я не очень хорошо разбираюсь в jquery, как мне это сделать?

HTML:

    //currently the data is being displayed on pageload:
    $(document).ready(function() {
    $("#bquote").load("quotes_in.php")
   });  

   $(".bsearch")
    .keydown(function() {
    //pass the parameter to the php page

       //display in div #bquote

    });


 <!-- Begin Search -->
        <div id="search" style="display:none;">
                <input type="text" class="bsearch" name="search" value="Search" />
        </div>
<!-- End Search -->

php [используя ООП]:

if (isset($_POST["search"])) 
{
    $quotes->searchQuotes();
}

php класс:

  $search = $_POST['search'];

  $sql = "SELECT * FROM thquotes WHERE cQuotes LIKE '%"
  .  mysql_real_escape_string($search) ."%' ORDER BY idQuotes DESC";


  try {

  $query = $this->_db->prepare($sql);
  $query->execute();

  if(!$query->rowCount()==0)
  {
   while($row = $query->fetch())
    {
    echo $this->formatSearch($row);
}

Ответы [ 3 ]

3 голосов
/ 27 июля 2010

Я бы сделал так:

$(".bsearch").keydown(function() {
  //create post data
  var postData = { 
    "bsearch" : $(this).val(), 
    "anotherParam" : "anotherValue" 
  };

  //make the call
  $.ajax({
    type: "POST",
    url: "yourAjaxUrl.php",
    data: postData, //send it along with your call
    success: function(response){
      alert(response); //see what comes out
      //fill your div with the response
      $("#bquote").html(response);
    }
  });
});

EDIT:

Для установки загрузчика необходимо проверить это здесь:

http://api.jquery.com/category/ajax/global-ajax-event-handlers/

И показать изображение загрузчика, например:

$("#loading").ajaxStart(function(){
   $(this).show();
});

И чтобы скрыть это после завершения вызова ajax:

$("#loading").ajaxComplete(function(){
   $(this).hide();
 });
1 голос
/ 27 июля 2010

Если вы хотите пойти по маршруту AJAX ...

$(".bsearch").keydown(function() {

    // Get the current input value
    var value = $(this).val(); 

    //pass the parameter to the php page
    $.ajax({
       type: "POST",
       url: "some.php", // replace this with the right URL
       data: "bsearch=" + value,
       success: function(msg){
          $("#search").html(msg);
       }
    });         
});

Читайте о jQuery.ajax () и, если вы превратите это окно поиска в правильную форму, используйте jQuery.serialize ()

0 голосов
/ 27 июля 2010

Вместо использования $ _POST вы можете использовать $ _GET или $ _REQUEST, как показано ниже:

var searchString = $(".bsearch").val();
$("#bquote").load("path_to_php_file.php?search="+searchString);

Затем в PHP замените

$_POST

... на

$_GET
...