2014-06-04 147 views
0

我在下面有一個小的代碼片段。我使用jQueryUI的自動完成功能從我的mySql數據庫中提取數據,並在用戶搜索特定用戶時將用戶名填入搜索欄。我希望它能夠自動填充正在搜索的人的名字和姓氏。例如,如果自動完成功能預測有人正在尋找勒布朗詹姆斯,我希望它返回姓和名。目前,我只能讓它返回名字。從查看文檔,我想我可以通過一個接一個地添加多個鍵和值對。這隻爲我產生一個名字。我在第二個標籤/值對名稱後添加了「2」,以查看是否給他們不同的名稱會有所幫助。它仍然只返回名字而不是姓氏。我怎樣才能讓它在我的自動填充中返回名字和姓氏?爲陣列設置多個鍵和值

我的index.php

<?php 


// here we set the database information 
$SERVER = 'localhost'; 
$USER = 'user'; 
$PASS = 'password'; 
$DATABASE = 'database'; 

// we are instantiating the mysqli database object 
$db = new mysqli($SERVER, $USER, $PASS, $DATABASE); 

// error check 
if($db->connect_errno > 0){ 

     // report an error 
die('Unable to connect to database [' . $db->connect_error . ']'); 
} 



$sql = 'SELECT * FROM users WHERE user LIKE "' . $_REQUEST['term'] . '%"'; 


$result = $db->query($sql); 

$data = array(); 

    while ($row = $result->fetch_assoc()) 
    { 
     $data[] = array(
      'label' => $row['firstName'] , 
      'value' => $row['lastName'], 
      'label2' => $row['lastName'], 
      'value2' => $row['lastName'], 

     ); 
    } 


// jQuery wants JSON data 
echo json_encode($data); 
flush(); 

我的HTML和JS

<form id="searchbox" action=""> 
    <input id="search" type="text" placeholder="Search"> 
    <!--<input id="submit" type="submit" value="Search">--> 
</form> 


<script type="text/javascript" > 

//script for autocompleting usernames when being search 
$('#search').autocomplete(
    {source:'autosuggest.php', 
    minLength:2 
    }); 

</script> 

回答

1

API documents直摘自:

多種類型支持:數組:數組可以用於本地數據。有兩種支持的格式:字符串數組:[「Choice1」, 「Choice2」]具有標籤和值屬性的對象數組:[{0} {0} {0} {0} {0} ]

他們希望你這樣提供的信息:

[ 
{'label': 'label', 'value': 'value'}, 
{'label': 'label', 'value': 'value'}, 
{'label': 'label', 'value': 'value'} 
....etc 
] 

而你這樣提供它:

[ 
{'label': 'label', 'value': 'value', 'label1': 'label1', 'value1': 'value1'} 
....etc 
] 

我自己沒有用過這個PA所以我不能評論,但我可以建議你解析完整的名稱,如:firstname_lastnamelabel,然後可能利用split()顯示全名。

或者,你可以通過你的PHP文件傳遞等標籤:

while ($row = $result->fetch_assoc()) 
{ 
    $data[] = array(
     'label' => $row['firstName'] . ' '. $row['lastName'], 
     'value' => $row['firstName'] . ' '. $row['lastName'], 
    ); 
} 
+1

非常感謝。我正在尋找php數組的文檔。謝謝你的協助。 – jonjon