Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [JQUERY] autocompletamento UI

    Salve a tutti...
    Sto cercando di far funzionare l'autocompletamento, ma qualcosa non va quando i dati li devo prendere in remoto, invece tutto ok se li prendo in locale da un array.
    Ho la mia bella pagina con tutti gli include e con questo campo:
    Codice PHP:
    <label  for="prov" id="lab_prov">Provincia<span class="required">*</span></label>
    <
    input type="text"  tabindex="100"  id="prov" name="prov" class="input " value="" /> 
    Dentro al suo bel FORM
    Poi ho questo JS
    Codice PHP:
     $(document).ready(function(){

      var 
    arr_prov=["torino","milano","napoli"];

      $(
    "#prov").autocomplete({
       
    source"province.php"    //NON FUNZIONA
       //source: arr_prov    //QUESTO FUNZIONA
      
    });

     }); 
    Come da commento se cambio il source la tendina appare
    Ed ho questo PHP per elencare i dati
    Codice PHP:
    <?PHP
    $q
    =false;
    if(isset(
    $_GET["term"])) $q strtolower($_GET["term"]);
    if (!
    $q) return;

    $items=array("Agrigento","Alessandria","Ancona","Aosta","Arezzo","Ascoli Piceno","Asti","Avellino","Bari","Barletta-Andria-Trani","Belluno","Benevento","Bergamo","Biella","Bologna","Bolzano","Brescia","Brindisi","Cagliari","Caltanissetta","Campobasso","Carbonia-Iglesias","Caserta","Catania","Catanzaro","Chieti","Como","Cosenza","Cremona","Crotone","Cuneo","Enna","Fermo","Ferrara","Firenze","Foggia","Forlì-Cesena","Frosinone","Genova","Gorizia","Grosseto","Imperia","Isernia","L'Aquila","La Spezia","Latina","Lecce","Lecco","Livorno","Lodi","Lucca","Macerata","Mantova","Massa-Carrara","Matera","Medio Campidano","Messina","Milano","Modena","Monza e della Brianza","Napoli","Novara","Nuoro","Ogliastra","Olbia-Tempio","Oristano","Padova","Palermo","Parma","Pavia","Perugia","Pesaro Urbino","Pescara","Piacenza","Pisa","Pistoia","Pordenone","Potenza","Prato","Ragusa","Ravenna","Reggio di Calabria","Reggio Emilia","Rieti","Rimini","Roma","Rovigo","Salerno","Sassari","Savona","Siena","Siracusa","Sondrio","Taranto","Teramo","Terni","Torino","Trapani","Trento","Treviso","Trieste","Udine","Varese","Venezia","Verbano-Cusio-Ossola","Vercelli","Verona","Vibo Valentia","Vicenza","Viterbo");

    $result = array();
    asort($items);
    foreach (
    $items as $item) {
     
    $n=strlen($q);
     if (
    substr(strtolower($item), 0,$n) == $q) {
      
    array_push($result$item);
     }
    }
    echo 
    array_to_json($result);

    //##########################################################################################################################

     
    protected function array_to_json$array ){
      if( !
    is_array$array ) ){  return false; }
      
    $associative countarray_diffarray_keys($array), array_keysarray_keys$array )) ));
      if( 
    $associative ){
       
    $construct = array();
       foreach( 
    $array as $key => $value ){
        if( 
    is_numeric($key) ){ $key "key_$key"; }
        
    $key "\"".addslashes($key)."\"";
        if( 
    is_array$value )){
         
    $value array_to_json$value );
        } else if( !
    is_numeric$value ) || is_string$value ) ){
         
    $value "\"".addslashes($value)."\"";
        }
        
    $construct[] = "$key$value";
       }
       
    $result "{ " implode", "$construct ) . " }";
      }else{ 
       
    $construct = array();
       foreach( 
    $array as $value ){
        if( 
    is_array$value )){
         
    $value array_to_json$value );
        } else if( !
    is_numeric$value ) || is_string$value ) ){
         
    $value "'".addslashes($value)."'";
        }
        
    $construct[] = $value;
       }
       
    $result "[ " implode", "$construct ) . " ]";
      }
      return 
    $result;
     }
    ?>
    Tutto abbastanza semplice, ma non funziona. La pagina PHP se richiamata a browser passandogli la querystring
    codice:
    term=t
    ad esempio tira fuori
    codice:
    [ 'Taranto', 'Teramo', 'Terni', 'Torino', 'Trapani', 'Trento', 'Treviso', 'Trieste' ]
    Quindi do per assunto che li non ci sono errori. Tranne che magari non li vuole in questo formato (però identico a quello funzionante in JS)
    Secondo voi... cosa ce che non va?
    La fantasía, abandonada de la razón, produce monstruos imposibles; unida con ella es madre de las artes y origen de las maravillas.
    (Francisco Goya)
    ----------------------------------------
    http://www.mangioebevo.it
    http://www.definitives.org

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    [ 'Taranto', 'Teramo', 'Terni', 'Torino', 'Trapani', 'Trento', 'Treviso', 'Trieste' ]
    Questo non è un json ma un array... il plugin si aspetta di ricevere una stringa in formato json percio da php devi far tornare un json



    json

  3. #3
    si ho risolto così

    Codice PHP:
      $n=strlen($q);
      foreach (
    $arr as $item) {
       if (
    substr(strtolower($item), 0,$n) == $q) {
        
    array_push($result, array("id"=>$item"label"=>$item." par: ".$vStato"value" => strip_tags($item)));
       }
      } 
    La fantasía, abandonada de la razón, produce monstruos imposibles; unida con ella es madre de las artes y origen de las maravillas.
    (Francisco Goya)
    ----------------------------------------
    http://www.mangioebevo.it
    http://www.definitives.org

  4. #4
    Ora c'è qualcos'altro che non mi torna... un problema che avevo notato in passato, ma che vedo ancora inrisolto.

    Diciamo che il codice funziona (e funziona).
    Dopo le province faccio una ricerca per le citta, tirando fuori dal DB l'elenco e passandole sempre con JSON
    Mistero dei misteri se come prima lettere metto la "a,b,c" non mi da risultati devo inserire una seconda lettera, per tutte le altre funziona.
    Qualcuno ha notato lo stesso problema?
    Eppure se richiamo la pagina PHP in browser il tutto funziona, vedo più valori che iniziano per a, ma lui non mi fa vedere nulla... come mai?
    La fantasía, abandonada de la razón, produce monstruos imposibles; unida con ella es madre de las artes y origen de las maravillas.
    (Francisco Goya)
    ----------------------------------------
    http://www.mangioebevo.it
    http://www.definitives.org

  5. #5
    lo fa solo quando ritorna questo array
    codice:
    [ { "cap": "10011", "label": "Agliè", "value": "Agliè", "multicap": "0" }, { "cap": "10060", "label": "Airasca", "value": "Airasca", "multicap": "0" }, { "cap": "10070", "label": "Ala di Stura", "value": "Ala di Stura", "multicap": "0" }, { "cap": "10010", "label": "Albiano d\'Ivrea", "value": "Albiano d\'Ivrea", "multicap": "0" }, { "cap": "10010", "label": "Alice Superiore", "value": "Alice Superiore", "multicap": "0" }, { "cap": "10040", "label": "Almese", "value": "Almese", "multicap": "0" }, { "cap": "10080", "label": "Alpette", "value": "Alpette", "multicap": "0" }, { "cap": "10091", "label": "Alpignano", "value": "Alpignano", "multicap": "0" }, { "cap": "10020", "label": "Andezeno", "value": "Andezeno", "multicap": "0" }, { "cap": "10010", "label": "Andrate", "value": "Andrate", "multicap": "0" }, { "cap": "10060", "label": "Angrogna", "value": "Angrogna", "multicap": "0" }, { "cap": "10020", "label": "Arignano", "value": "Arignano", "multicap": "0" }, { "cap": "10051", "label": "Avigliana", "value": "Avigliana", "multicap": "0" }, { "cap": "10010", "label": "Azeglio", "value": "Azeglio", "multicap": "0" } ]
    o almeno io mi sono accorto solo di questo
    e lo fa anche s correggo quello sgorbio con Aglie (dovrebbe essere Agliè)
    La fantasía, abandonada de la razón, produce monstruos imposibles; unida con ella es madre de las artes y origen de las maravillas.
    (Francisco Goya)
    ----------------------------------------
    http://www.mangioebevo.it
    http://www.definitives.org

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.