2015-05-23 118 views
0

我想在Wordpress上使用jQuery UI Autocomplete,但由於某些原因,它不起作用。jQuery UI自動完成與Wordpress無關

無論如何,我會告訴你我已經:

HTML

<input type="text" name="db-search" id="db-search" autocomplete="off" /> 

的JavaScript

$('#db-search').autocomplete({ 
    source: function (request, response) { 
     $.ajax({ 
     type: "POST", 
     url:"/wp-content/themes/your-click/autocomplete.php", 
     data: { autocomplete: 'true' }, 
    }); 
     } 
    }, { minLength: 1 }); 

PHP(autocomplete.php)

<?php 
    global $wpdb; 
    $string = wpdb::_real_escape($_GET['term']); 
    $get_results = $wpdb->get_results("SELECT * FROM yc_customers WHERE website LIKE $string ORDER BY website ASC"); 

    $json[] = ''; 
    foreach ($get_results as $get_result) { 
     array_push($json, $get_result->website); 
    } 

    echo json_encode($json); 
    flush; 
?> 

我在使用chrome進行測試時沒有收到任何錯誤。所以我不知道我的代碼有什麼問題,但是我猜,PHP一定有什麼問題。

回答

0

更新

php在問題出現在期待 「GET」 請求$_GET['term']?嘗試subsituting $string = wpdb::_real_escape($_POST['autocomplete']);$string = wpdb::_real_escape($_GET['term']);

Autocomplete - Remote JSONP datsource - viewsource


.autocomplete()預計response(Array),也出現在data: { autocomplete: 'true' },

被尾隨逗號,嘗試

$('#db-search').autocomplete({ 
    source: function (request, response) { 
       // input query 
       var term = request.term; 
       $.ajax({ 
       type: "POST", 
       url:"/wp-content/themes/your-click/autocomplete.php", 
       // "POST" `term` to server 
       data: { autocomplete: term } 
       }).then(function(data) { 
       response(data) 
       }, function error(jqxhr, textStatus, errorThrown) { 
       console.log(textStatus, errorThrown) 
       }); 
     } 
    }, 
    minLength: 1 
}); 
+0

謝謝你,現在我得到的錯誤:未捕獲TypeError:不能使用'in'運算符在[「」]中搜索'3'。它告訴我,這個錯誤來自jquery.min.js。它也是說響應(數據)(在你的代碼中)是一個匿名函數。 –

+0

嘗試打開'console'點擊「網絡」 - >「響應」。是否從服務器發送響應?數據是從$ .post()返回一個包含空字符串[[「」]'的數組嗎? – guest271314

+0

當我點擊網絡時,沒有所謂的「響應」。我正在使用Chrome和Firefox進行測試。只有我看到的是一個帖子已成功發送到autocomplete.php,但它不會返回任何內容。 –