2011-01-03 19 views
0

Es scheint, dass das Autocomplete-Widget erfordert, dass die Daten die Variablen 'label' und 'value' im Array haben.jQuery Autocomplete - Label/Wert in Quelldaten überschreiben

Ist es möglich, dies zu überschreiben und verwenden Sie Ihre eigenen Werte (z. B. Spalten aus einer Datenbank), so dass Sie mehr als ein Textfeld mit Autovervollständigung in einem Formular haben können?

Ein paar Tipps für alle mit PHP und MySQL unter Verwendung der automatische Vervollständigung ...

while($r = mysql_fetch_assoc($rsCustomerLookup)) { 
$rows[] = $r; 
} 
print json_encode($rows); 

die Daten im JSON-Format aus der DB bekommt

select: function(event, ui) { 
    $("#name").val(ui.item.name); 
    $("#surname").val(ui.item.surname); 
    $("#company").val(ui.item.company); 
    $("#address1").val(ui.item.address1); 
    $("#address2").val(ui.item.address2); 
    etc 

andere Textfelder mit Daten, wenn Sie füllt zielen darauf ab, ein ganzes Formular aus einem Autovervollständigen Textfeld zu füllen

Antwort

0

Was Sie tun können, ist die value auf die Datenbank-ID des Datensatzes gesetzt. Sie können dann nehmen, dass value (die die Datenbank-ID) zur Verfügung und erhalten name, surname, company etc ..

+0

Nicht sicher, was du meinst? Ich könnte die DB-Spaltennamen neu schreiben, wenn ich das Array erstelle, so dass unabhängig davon, welche Datenbank-ID-Spalte benannt wird, "Label" wird und die Wertespalte, die ich möchte, in "Wert" umbenannt wird. Ich wünschte nur, ich könnte dem Javascript sagen, welche Werte in den JSON-Daten verwendet werden sollen, ohne die Quelle des jquery-Widgets zu bearbeiten (was ich gerade mache) – xgarb

0

enter link description here

<script> 
$().ready(function() { 
$('#tag').autocomplete('tag.php?find=tag', { 
      width: 260, 
      matchContains: true, 
      selectFirst: false 
     }); 
}); 

    $('#other').autocomplete('tag.php?find=other', { 
      width: 260, 
      matchContains: true, 
      selectFirst: false 
     }); 
}); 
</script> 
<?php 
//in tag.php 
$find = $_GET["find"]; 
if($find=='tag'){ 
    $q = strtolower($_GET["q"]); 
    if (!$q) return; 
    $sql = "select DISTINCT tag from tag where name_tag LIKE '%$q%'"; 
    $rsd = mysql_query($sql); 
    while($rs = mysql_fetch_array($rsd)) { 
     $cname = $rs['name_tag']; 
     echo "$cname\n"; 
    } 
} 
/* 
This adds to other data 
    if($find=='other'){ 
    $q = strtolower($_GET["q"]); 
    if (!$q) return; 
    $sql = "select DISTINCT tag from tag where name_tag LIKE '%$q%'"; 
    $rsd = mysql_query($sql); 
    while($rs = mysql_fetch_array($rsd)) { 
     $cname = $rs['name_tag']; 
     echo "$cname\n"; 
    } 
} 
*/ 
?> 
<input id='tag' type='text'> 
<input id='other' type='text'> 
+0

http://goo.gl/fKy6n – Rafaelox