Visualizzazione dei risultati da 1 a 4 su 4

Discussione: select & ajax

  1. #1

    select & ajax

    Ciao a tutti! Vi spiego il mio problema. Ho un select con 4 valori. Vorrei ke il valore del select selzionato vada a finire in una variabile che mi serve per fare la query per un ulteriore select. Mi hanno detto che sta cosa qui si può fare usando AJAX ma sono a completo digiuno di sto linguaggio. HELP ME!


    Codice PHP:
    <select name="macro">
      <option value="1">Macrocategoria1</option>
      <option value="2">Macrocategoria2</option>
      <option value="3">Macrocategoria3</option>
      <option value="4">Macrocategoria4</option>
    </select>

    <select name="cat">
      <?
      
    include("install.php");
      
    mysql_select_db($db_name$db)
      or die (
    "Errore nella selezione del database. Verificare i parametri");
      
    $query=mysql_query("SELECT * FROM foto WHERE macro='IL VALORE DELLA SELECT QUI SOPRA' GROUP BY tipo");
      while (
    $row=mysql_fetch_array($query)){
        
    ?>
        <option value="<? print ($row['nomecat']);?>"><? print ($row['nomecat']);?></option>
        <?
      
    }
      
    mysql_close($db);
      
    ?>
    </select>
    Il tempo passa non solo per chi parla, ma anche per chi ascolta

  2. #2
    Si devi usare AJAX, puoi optare per un framework tipo jQuery o Mootools che hanno metodi incorporati, oppure puoi usare qualche script esterno tipo questo:

    http://www.hunlock.com/blogs/The_Ultimate_Ajax_Object

    Per lanciare la chiamata ajax devi utilizzare l'evento onchange e associarlo al select macro (dagli id="macro")

    codice:
    window.onload = function () {
       var macroSelect = document.getElementById('macro');
       macroSelect.onchange = function () {
          // chiamata ajax
          // il valore della select è this.value
        };
    
    };

  3. #3
    Ciao dwj,

    grazie per aver risposto al mio s.o.s. ! Ho visto il codice che mi hai suggerito solo che non so che mettere dove scrivi

    // chiamata ajax
    // il valore della select è this.value

    sono a completo digiuno di AJAX e il mio utilizzo di Jquery e Mootools si limita solo a cose tipo lightbox.

    HELP ME HELP ME!

    PS: colgo l'occasione per chiedere: conoscete un manuale di AJAX alla mia portata? un manuale proprio per fagiani come me?

    Il tempo passa non solo per chi parla, ma anche per chi ascolta

  4. #4
    Ciao,

    in realtà AJAX è un metodo di javascript, quindi tutto dipende dalla tua conoscenza di javascript.

    per quanto riguarda il tuo caso i passi da compiere sono questi:

    In un file JS a parte oppure nell'head della pagina inserisci il codice che ti ho linkato

    Prima della chiusura dell'head:
    codice:
    window.onload = function () {
       var macroSelect = document.getElementById('macro');
       macroSelect.onchange = function () {
          // inizializza l'oggetto richiesta che gestisce la chiamata AJAX con il percorso al file php che gestisce la generazione delle select dinamiche
          var richiesta = new ajaxObject('select.php');
    
          // quando la richiesta è conclusa inserisce le option generate nella select con id=cat
          richiesta.callback = function(responseText) {         document.getElementById('cat').innerHTML=responseText;
    };
    
    
          // invia tramite POST il valore corrente della select macro
          richiesta.update('macrovalue='+this.value,'POST');
        };
    
    };
    Poi crei il file select.php e gli inserisci dentro il codice php che deve generare le option per la select "cat" e cambi la queery php inserendo come valore di cat da ricercare:

    codice:
    WHERE cat='".$_POST['macrovalue']."'
    per quanto riguarda una guida ad AJAX prova a vedere qui sul sito.
    http://javascript.html.it/guide/leggi/95/guida-ajax/

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.