2011-11-28 40 views
10

Từ jQuery UI site (nguồn veiw):Tự động hoàn thành giao diện người dùng jQuery: cách gửi dữ liệu bài đăng?

$("#birds").autocomplete({ 
    source: "search.php", 
    minLength: 2, 
    select: function(event, ui) { 
     log(ui.item ? 
      "Selected: " + ui.item.value + " aka " + ui.item.id : 
      "Nothing selected, input was " + this.value); 
    } 
}); 

Vì vậy, khi tôi thấy không có lựa chọn như thế nào để thực hiện yêu cầu ajax với bài dữ liệu đến "search.php".

Nhưng tôi cần phải làm điều đó để gửi một số bộ lọc khỏi trường nhập trước đó (lĩnh vực hiện tại: thành phố, lĩnh vực theo thời gian: nước).

Làm cách nào để thực hiện điều đó?

Cảm ơn!

Trả lời

18

Hãy thử thay đổi nguồn là một phương pháp trong đó sử dụng $ .post:

$("#birds").autocomplete({ 
    source: function (request, response) { 
    $.post("search.php", request, response); 
    }, 
    ... 
+0

OK, tôi sẽ cố gắng này. Cảm ơn –

+0

Nó hoạt động ??? Tôi thử nhưng tôi không làm việc. Cảm ơn! –

+0

Làm việc cho tôi như một sự quyến rũ! Cảm ơn! – Jagger

3
$("#birds").autocomplete({ 
source: function (request, response) { 
    $.ajax({ 
    type: "POST", 
    url:"search.php", 
    data: request, 
    success: response, 
    dataType: 'json' 
}); 
    } 
}, {minLength: 3 }); 

//------------------------- 
//search.php - example with request from DB 

// 


$link = mysql_connect($mysql_server, $mysql_login, $mysql_password) 
     or die("Could not connect: " . mysql_error()); 
    mysql_select_db($mysql_database) or die("Could not select database"); 
    mysql_set_charset('utf8'); 

$req = "SELECT mydata FROM $mysql_table WHERE mydata LIKE '".$_REQUEST['term']."%' ORDER BY mydata ASC"; 
$query = mysql_query($req); 

while($row = mysql_fetch_array($query)) 
{ 
    $results[] = array('label' => $row['mydata']); 
} 


echo json_encode($results); 
?> 
2

tôi đã cùng một nhu cầu này và không có ví dụ duy nhất từ ​​stackoverflow đang làm việc đúng cách.

Bằng cách kiểm tra các tác giả khác nhau đóng góp và tinh chỉnh ở đây và có ví dụ dưới đây rất có thể là những gì mọi người sẽ được tìm kiếm trong một autocomplete rằng

  1. Gửi ra yêu cầu POST.

  2. Không yêu cầu tinh chỉnh giao diện người dùng tự động hoàn thành chính.

  3. Gửi nhiều thông số để đánh giá.

  4. Truy xuất dữ liệu từ tệp PHP cơ sở dữ liệu.

Tất cả tín dụng là dành cho nhiều người mà tôi đã sử dụng câu trả lời mẫu để làm mẫu này.

 $("#employee_name").autocomplete({ 
     source: function (request, response) { 
     $.ajax({ 
     type: "POST", 
     url:"employees.php", 
     data: {term:request.term,my_variable2:"variable2_data"}, 
     success: response, 
     dataType: 'json', 
     minLength: 2, 
     delay: 100 
      }); 
     }}); 
+0

Đẹp, cảm ơn! – mcraen

0

Điều sau đây có hiệu quả đối với tôi. Tôi cần một số dữ liệu tùy chỉnh, vì vậy tôi kéo tìm kiếm "hạn" term: request.term ra yêu cầu như sau:

jQuery('.some-autocomplete').autocomplete({ 
    source: function(request, response) { 
     jQuery.post(ajaxurl, {action: 'some_content_search', type: type, term: request.term}, response, 'json'); 
    }, 
    minLength: 2, 
    ... 
Các vấn đề liên quan