Avatar billede bigo Nybegynder
24. juni 2010 - 12:01 Der er 1 løsning

jquery - autocomplete

Hejsa.

Jeg har tidligere prøvet autocomplete med prototype.js .. men det var ikke helt kompatibelt(med mig altså) såe.. jeg har gjort brug af jQuery andre steder (great success!)

Kan se at der er lagt en autocomplete funtion ind i jQuery, men jeg kan ikke lige lure hvordan jeg skal bruge den til at hente dynamiske data med 2 parametre.
http://jqueryui.com/demos/autocomplete/#remote-jsonp
angiver noget med json, men kun med en "automatisk" parameter.

Og til mit skal jeg kalde en printiphint.php fil med parametrene "q" og "cust_id".

Nogen der har en ide til hvordan det skal se ud?
Avatar billede bigo Nybegynder
24. juni 2010 - 20:03 #1
Ok, den var lidt tricky.. men det lykkedes..

google er din ven [tm](r) osv.. ;-)

[code]
<s|cript type=text/javascript>
jQuery(function() {
  jQuery( '#InterfaceID_".$x."_IP' ).autocomplete({
  minLength: 2,
  source: function(request, response) {
    jQuery.ajax({
    url: 'printiphint.php',
    dataType: 'json',
    data:
    {
      term : request.term,
      cust_id: ".$row["customer_id"]."
    },
    success: function(data) {
            response(data);
          }
    });
  }
  });
});
</s|cript>
[/code]

og så printiphint.php

[code]
if ($_GET["term"])
$q = $_GET["term"];

if ($_GET["cust_id"])
$customer_id = $_GET["cust_id"];

/* IP Octets Assigned */
$sql = "
  SELECT
  ip_octets.*,
  INET_NTOA(ip_octets.ip_octet) AS ip_octet_ntoa
  FROM
  ip_octets
  WHERE
  ip_octets.ip_octet_customer_id = '".$customer_id."'
  AND
  INET_NTOA(ip_octets.ip_octet) LIKE '".$q."%'
  AND
  ip_octets.ip_octet_asset_id = 0
  LIMIT 10
";
$ipoctet_res = mysql_query($sql) or cc("ERROR select ipoctets", check_input($sql), check_input(mysql_error()) , $_SESSION["u_id"], $this_document);
while ($ipoctet_row = mysql_fetch_assoc($ipoctet_res))
  $ipoctet_array[] = $ipoctet_row;

//lookup all hints from array if length of q>0
if (strlen($q) > 0)
{
if (!empty($ipoctet_array))
foreach($ipoctet_array AS $ip_octet)
{
  $ip_add = long2ip($ip_octet["ip_octet"]);
  if ($q==substr($ip_add,0,strlen($q)))
    $hint[]=$ip_add;
}
}
echo json_encode($hint);

[/code]

vigtige ting at huske:
      term : request.term,
det er hvad der bliver indtastet i inputfeltet!
      json_encode
retter vist array til så det bliver lagt i [ og med "
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester