Back to top

Autore Topic: [Chronoform e jQuery] $.getJSON, non riesco a gestire il response  (Letto 1530 volte)

Offline khronos_one

  • Nuovo arrivato
  • *
  • Post: 3
    • Mostra profilo
Ciao a tutti.
ho inserito con successo una form custom in chronoform, con avvio di JS gestito al suo interno.
JqueryUI è gestito da un'estensione di joomla che me lo carica felicemente in tutto il sito.


ho a che fare con una form con richiesta di paesi e provincie, AUTOCOMPLETATA, che volevo far funzionare tale e quale agli esempi presenti sul sito della wiki di jqueryUI autocomplete .

l'input si chiama #locations .


SE io, nel javascript della form, inserisco il codice che cerca i dati "localmente", direttamente in un array, la cosa funziona perfetta:


$(function() {
      var availableTags = [
         "ActionScript",
         "AppleScript",
         "Asp",
         "BASIC",
         "C",
         "C++",
         "Clojure",
         "COBOL",
         "ColdFusion",
         "Erlang",
         "Fortran",
         "Groovy",
         "Haskell",
         "Java",
         "JavaScript",
         "Lisp",
         "Perl",
         "PHP",
         "Python",
         "Ruby",
         "Scala",
         "Scheme"
      ];
      $( "#locations" ).autocomplete({
         source: availableTags
      });

   });

va da dio... scrivo "py" e mi esce Python sotto da scegliere, scrivo "ja" e mi esce Java e Javascript.....

MA
purtroppo il DB di paesi e province è grossino, non posso scriverlo tutto nel codice.
quindi ho scritto un bel PHP che mi raccoglie i dati da MySql, chiedendo all'utente 2 parametri (per futuri ampliamenti):
parametro [a] = "src"
parametro [term] = "il termine da cercare".


L'ho provato e funziona, e alla fine gli dico:

    // json_encode for return data
    $locationsjson = json_encode($locations);
    return ($locationsjson);

$locationsjson mi contiene tutti i dati che voglio parsare, ovviamente sotto forma di oggetto JSON.


il Javascript che voglio far funzionare, quindi, è questo: in rosso la parte che secondo me non quadra. NON mi da nessun errore, MA l'autocomplete non esce fuori con nessun valore.

$(function(){

//funzione per dividere ogni valore cercato
      function split( val ) {
         return val.split( /,\s*/ );
      }
       
        //funzione per estrarre ogni valore partendo dall'ultimo
      function extractLast( term ) {
         return split( term ).pop();
      }

$( "#locations" ).autocomplete({
      source: function( request, response ) {
              $.getJSON( "api/src.php", {
                                         a : "src",term: request.term
                                        },
                                           response );

            },
      search: function() {
 // se si scrivono solo 2 caratteri non cerca niente
              var term = this.value;
              if ( term.length < 1 ) {return false;}
      }
   });
 
});


Non avendo mai toccato JSON prima d'ora, non ho idea del perchè non gestisca il response, al contrario dell'esempio sulla wiki di jquery che con lo stesso codice fa faville.
Potete darmi una mano?
grazie in anticipo...
« Ultima modifica: 04 Giu 2012, 20:37:21 da khronos_one »

 



Web Design Bolzano Kreatif