2016-05-30 4 views
0

JavaScript、phpなどは全く新しいです。私は訓練アプリケーションを完成させるためにいくつかの助けが必要です。返り値の変更オートコンプリートPHP

これは私の問題です。

私は特定の会社を見つけるためにデータベースでオートコンプリートを使用しています。

Autocompletionはラベルと値を会社の名前で返しますが、私のアプリケーションの残りの部分はIDを使用しているため、IDが必要です。

array (size=23) 
    'company' => string 'example' (length=10) 

ので、私はまだ私はIDを持っていると思いますが、代わりに「例」の会社の名前が必要になります。

これは私がPOSTで得たものである:ここでは

は一例です"例"の。

は、ここに私のsearch.phpです:

$dbHost = 'localhost'; 
$dbUsername = 'root'; 
$dbPassword = ''; 
$dbName = 'bsup'; 

if(!isset($company)) $company = ''; 
if(!isset($_POST['company'])) $_POST['company'] = ''; 

$db = new mysqli($dbHost,$dbUsername,$dbPassword,$dbName); 


$searchTerm = $_GET['term']; 


$query = $db->query("SELECT * FROM tcompany where name like '%".$searchTerm."%' ORDER BY name ASC"); 
while ($row = $query->fetch_assoc()) { 

     $data[] = $row['name']; 
} 


//return json data 
echo json_encode($data); 

マイHTML:

$(function() { 
    var cache = {}; 
    $.ajaxSetup({ type: "post" }); 
    $("#company").autocomplete({ 
     minLength: 2, 
     select: function(event, ui) { 

     $(event.target).val(ui.item.value); 
     $("#myform").submit(); 
     }, 
     source: function(request, response) { 


     $.getJSON("search.php", request, function(data, status, xhr) { 

      response(data); 
     }); 
     } 
    }); 
    }); 

おかげであなたの助けのためにたくさん!

答えて

1

必要なすべてのデータが含まれるようにjsonを更新します。あなたはより多くのデータが必要な場合は、代わりに名前の使用のあなたのオートコンプリートでIDを提案したい場合は、

$data[$row['ID']] = array($row['name'], $row['whatever']) 

のような配列の配列を行うことができます

$data[$row['ID']] = $row['name'] 

:たとえばのような配列を返します。

$data[] = $row['ID'] 
+0

こんにちは、お返事ありがとうございます。私はすでにそれを試みましたが、私がしたとき、私の入力は何も表示しません。なぜか分からない! – Cesar

+0

これは、あなたのjsonが何も返さないか、正しい形式でないことを意味します。あなたの応答(データ)では、データは文字列、文字列または関数の配列である必要があるので、JavaScriptコールバックでレスポンスをさらに処理したいと思うかもしれませんが、あなたはそれを尋ねませんでした。あなたが尋ねたのは何らかの理由でIDを含めることだけでした。また、コードをデバッグして投稿が何かを返すようにしてください。データが空の場合、何も示唆しません。 – TigOldBitties

関連する問題