[LatinaLUG] jquey e ajax

Mirko mirkos93@gmail.com
Mer 10 Feb 2016 14:00:32 CET


Ciao Jusi,
non ho testato il codice che ci hai girato, però a primo impatto ti dico
subito che questa operazione:
$('select').each(function(){
        $(this).change(function() {

puoi riassumerla in $('select').change(function(){}); o meglio ancora
$('body').on('change','select',function(){});
Un'altra cosa che ho notato è che nell'attr ID piazzi solo un valore
numerico, prova ad aggiungere un prefisso tipo ilmioid_0.

prova intanto a modificare queste cose, e piazza un console.log qua e la
per capire dove si blocca il tuo script

Ciao!
Mirko

Il giorno 10 febbraio 2016 13:35, Jusi Pomenti <jusipom@gmail.com> ha
scritto:

> ciao a tutti,
> è      la prima volta  che affronto un problema del genere e ho poca
> familiarità con jquery e ajax.Non vi invio tutto il codice che,oltre  ad
> essere diviso  in file,è anche piuttosto lungo e,in poche parole,funziona
> cosi':
> Ho 4 select con id da 0 a 3. Quando l'utente cambia il valore della select
> 0,vengono impostati alcuni parametri per operare sulla select 1 e con
> questi si esegue una richiesta AJAX con il metodo GET che popola la select
> con id 1.
> Stesso discorso quando cambia l'opzione nella select 2;ovviamente,in
> questo caso,viene popolata la select 3 La mia impressione è che non chiami
> lo script. Questa è la pagina iniziale:
> -------------------------------------------------------------------
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
> http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
> <html xmlns="http://www.w3.org/1999/xhtml">
> <head>
> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
> <title>jquery e ajax</title>
> <script src="jquery-1.8-0.min.js" language="javascript"
> type="text/javascript"></script>
> <script language="javascript" type="text/javascript">
>
> $(document).ready(function() {
>
>     // verifico  quale select ha cambiato  valore e setto,di
> conseguenza,la select da aggiornare
>     $('select').each(function(){
>         $(this).change(function() {
>              var list_select_id=$(this).attr('id');    // ID select che ha
> cambiato valore
>              var selectvalue = $(this).val(); // valore selezionato
>              var par; // parametri
>              var initial_target_html; // prima opzione
>              switch (list_select_id)
>              {
>                  case 0:
>                     list_target_id='#1';
>                     initial_target_html = '<option value="0">Seleziona una
> categoria</option>';
>                     par='id_cat='+seletvalue;
>                     break;
>                 case 2:
>                     list_target_id='#3';
>                     initial_target_html = "<option value='0'>Seleziona
> un'area/option>";
>                     par='id_area' + seletvalue;
>                     break;
>              }
>
>  alert(list_target+" - "+par);
>              $(list_target_id).html(initial_target_html); // inserisce la
> prima opzione nel secondoo menù
>
>              $('#'+list_select_id).change(function(e) {
>                  // visuualizza un messagio in attesa di caricaree u  dati
>                  $(list_target_id).html('<option value="0">Sto
> caricando</option>');
>                  //if-else
>                  if (selectvalue == "") {
>                      // Se non è selezionata um'opzione nel primo menù,neò
> secondo viene visualizzata la prima opzione
>                      $(list_target_id).html(initial_target_html);
>                  } else {
>                      // richiest AJAX con GET
>                      $.ajax({url: 'ajax-scat.php?'+ par,
>                          success: function(output) {
>                              // visualizza le opzioni in caso di successo
>                              $(list_target_id).html(output);
>                          },
>                          error: function (xhr, ajaxOptions, thrownError) {
>                              // visualizza eventuali errori
>                              alert(xhr.status + " "+ thrownError);
>                          }
>                      }); // chiudo $.ajax
>                  } //if-else
>              }); // chiudo $(list_select_id).change(
>
>         });// chiudo $(this).change(
>     });// chiudo $('select').each(
>
> }); //chiudo ready
>
> </script>
> </head>
> <body>
> <div style='position:absolute; top:150px; left:100px; width:900px;
> height:200px'>
> <?php
>   include ("config_db.php");  // funzioni per la connessione al db
>   include ("php_html.php");   // scrive codice html tramite php
>   $db=connect();
>   $m_cat=crea_menu($db,"categorie","cat","index.php",0,0,"cat");
>   $m_area=crea_menu($db,"area","area","index.php",0,2,"area");
>   mysql_close($db);
>   $m_scat=crea_menu_nill(1,"scat");
>   $m_uff=crea_menu_nill(3,"uff");
>   $s="<form  name='ins' method='post' action=''>";
>   $s.="<table width='100%'>";
>   $s.="<tr height=50>";
>   $s.=ins_menu("Categoria :","5%",1,$m_cat,"30%",1,"top","","","",0);
>   $s.=ins_menu("Sottocategoria :","5%",1,$m_scat,"30%",1,"top","","","",0);
>   $s.="</tr>";
>   $s.="<tr height=50>";
>   $s.=ins_menu("Area :","5%",1,$m_area,"30%",1,"top","","","",0);
>   $s.=ins_menu("Ufficio :","5%",1,$m_uff,"30%",1,"top","","","",0);
>
>   $s.="</tr></table>";
>
>   $s.=ins_submit();
>   $s.="</form>";
>   echo $s;
>
> ?>
> </div>
> </body>
> </html>
> ----------------------------------------------
> dove  sbaglio?
> Ciao e grazie
>
> _______________________________________________
> http://www.llg.it
> latina mailing list
> latina@lists.linux.it
> http://lists.linux.it/listinfo/latina
>
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.linux.it/pipermail/latina/attachments/20160210/953c2231/attachment.html>


Maggiori informazioni sulla lista latina