2010-12-17 6 views
2

Ich bin jQuery UI Autocomplete an ein Kontaktfeld, das funktioniert, aber jetzt muss ich auch eine company_id übergeben (dynamisch), um die Suche nicht nur auf die Suchzeichen zu beschränken aber auch zu einer Firma, die der Benutzer zuvor gewählt hat. IE wenn der Benutzer 'jo' eingibt, werden alle Kontakte, die 'jo' enthalten, innerhalb der company_id übergeben.jQuery UI autoComplete - übergeben Sie einen Wert aus einem anderen Feld

Übrigens, remote.php gibt ID und Wert zurück, so dass ich sowohl contact_name und contact_id ausfüllen kann. Dieser Teil funktioniert.

Ich kann einfach nicht herausfinden, wie es das company_id Feld übergeben.

 

    $("#contact_name).autocomplete({ 
     source: 'remote.php?t=contactSearch', 
     minLength: minlen, 
     select: function(event, ui) { 
      $("#contact_id").val(ui.item.id); 
     } 
    }); 

danke!

Antwort

2

Nach viel Recherche und Trail und Fehler, das funktioniert für mich.

Also, was das bedeutet:
Der Benutzer gewählt hat, ein Unternehmen vor diesem Code (nicht dargestellt),
Die autocomple unter dem contact_name befestigt sind, und die company_id wird auch übergeben.
remote.php gibt ein Array mit ID und Wert der Kontakte zurück, die die Teilsuchkriterien erfüllen und zu der angegebenen Firma gehören. Wenn der Benutzer auf einen Wert klickt, wird der Kontaktname in das Feld der Autovervollständigung eingefügt (es gibt keinen speziellen Code dafür, die automatische Vervollständigung macht dies automatisch) und die ID wird in das Feld contact_id gestellt.

 
     $("#contact_name").autocomplete({ 
      source: function(request, response) { 
       $.getJSON ('remote.php', 
       { term: request.term, company_id:$('#company_id').val() }, 
       response); 
      }, 
      select: function(event, ui) { 
       $("#contact_id").val(ui.item.id); 
      } 
     }); 


A look at a simplified version of remote.php is: 


$myDataRows = array(); 
$search = addslashes($_REQUEST['term']); 
$company_id = addslashes($_REQUEST['company_id']); 

$sql = "SELECT c.contact_id as `id`, contact_name as`value` FROM contacts c 
    WHERE c.company_id = '$company_id' and c.contact_name LIKE '%$search%' "; 

$result = mysql_query ($sql); 

while ($row = mysql_fetch_assoc($result)) { 
    array_push($myDataRows, $row); 
} 

$ret = json_encode ($myDataRows); 

echo $ret; 

Verwandte Themen