Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    4

    Select dinamica con Ajax e PHP

    Salve a tutti ho iniziato da poco a programmare in php e sto cercando di implementare 2 select option che una varia al variare dell'altra. In pratica sono una select Regione e una Provincia, al variare di regione dovrebbe variare anche provincia, ma non riesco a capire come risolvere, posto il codice di quello che ho creato:

    File index.php
    codice:
    <?php include ("configuredb.php");?>
    
    <html>
    <head>
    <script type="text/javascript">
    
    
    function showregione(str, pr)
    {
    if (str=="" || pr=="")
      {
      document.getElementById("txtHint").innerHTML="";
      return;
      } 
    if (window.XMLHttpRequest)
      {// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
      }
    else
      {// code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    xmlhttp.onreadystatechange=function()
      {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
        document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
        }
      }
    xmlhttp.open("GET","getregione.php?q="+str+"&pr="+pr,true);
    xmlhttp.send();
    }
    
    
    
    
    </script>
    </head>
    <body>
    <?php
    	    
    		
    		
        
            $q = mysql_query("SELECT * FROM regioni GROUP BY regione ORDER BY regione ASC"); 
    		echo '<form>';
    		echo '<select class="regione" name="regione" id="regione" onchange="showregione(this.value)">'; 
    
            //Visualizzo i record 
            while ($r = mysql_fetch_array($q)){ 
            
             $r = stripslashes($r['regione']); 
          
            echo '<option value="'.$r.'">'.$r.'</option>'; 
            }
    
    
            echo ' </select>'; //Chiudo il select regione
    		//echo '</form>';
    		
    		
    		$q = mysql_query("SELECT * FROM regioni ORDER BY provincia ASC"); 
    		//echo '<form>';
    		echo '<select class="provincia" name="provincia" id="provincia" onchange="showregione(this.value)">'; 
    
            //Visualizzo i record 
            while ($r = mysql_fetch_array($q)){ 
            
             $r = stripslashes($r['provincia']); 
          
            echo '<option value="'.$r.'">'.$r.'</option>'; 
            }
    
    
            echo ' </select>'; //Chiudo il select regione
    		echo '</form>';
            ?>
    		
    
    
    
    <div id="txtHint">Lista </div>
    </body>
    </html>
    File getregione.php
    codice:
     
    
    <?php
    $q=$_GET["q"];
    $pr=$_GET["pr"];
    
    $con = mysql_connect('localhost', 'root', '');
    if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }
    
    mysql_select_db("regioni", $con);
    
    $sql="SELECT * FROM annunci WHERE regionecliente = '".$q."' AND provinciacliente ='".$pr."'";
    
    $result = mysql_query($sql);
    
    echo "<table border='1'>
    <tr>
    <th>Regione</th>
    <th>ID</th>
    <th>Provincia</th>
    </tr>";
    
    while($row = mysql_fetch_array($result))
      {
      echo "<tr>";
      echo "<td>" . $row['regionecliente'] . "</td>";
      echo "<td>" . $row['provinciacliente'] . "</td>";
    
      echo "</tr>";
      }
    echo "</table>";
    
    mysql_close($con);
    ?>
    Spero in un vostro aiutino, anche perché non riesco a venirne fuori ho seguito diverse guide su google ma non ci capisco mai nulla e non ho trovato una guida esauriente.

    Grazie

  2. #2
    Utente di HTML.it L'avatar di skjobax
    Registrato dal
    Jan 2010
    Messaggi
    569
    Vuoi uno script che cambia regione quando si cambia provincia e viceversa?
    Ma il problema è ottenere i valori tramite AJAX o è PHP ?

    Non ho capito...

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    4
    Si uno script che al variare della regione mi filtri l'altro select con le rispettive provincie e viceversa allo stesso tempo deve mostrarmi i risultati della query. Supponiamo di avere una lista di clienti nel db, voglio filtrare la lista in base alla regione e alla provincia o solo per una delle due. Ma non riesco a venirne a capo come dovrebbe essere impostata

    Grazie

  4. #4
    Utente di HTML.it L'avatar di skjobax
    Registrato dal
    Jan 2010
    Messaggi
    569
    Quindi, tu vuoi sapere quando iniziare il fitro?
    Basta che metti una call alla funzione javascript AJAX che effettua il controllo nell' evento onchange della select...

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    4
    Grazie mille per la risposta, ma non ho capito cosa devo fare, hai visto il codice che ho postato?So che devo impostare nell'evento onchange ma non so come impostarlo a partire dalla funzione che ho

  6. #6
    Utente di HTML.it L'avatar di skjobax
    Registrato dal
    Jan 2010
    Messaggi
    569
    Allora, presumo che tu abbia una funzione (javascript) che controlla dinamicamente (AJAX) il valore delle select...
    Se no, è meglio che te la crei...
    Dopodiché richiamala nell' onchange...

    Però, non so se così faccio qualcosa non in norma al regolamento, dato che la sezione è PHP...

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    4
    Si il codice che ho postato è quello che ho fatto, però a me serve capire come impostarlo in AJAX e in php quindi penso che sia corretto aver postato qui, se cosi non fosse chiedo scusa e chiedo ai moderatori di spostare la discussione in Javascript.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    4
    Il problema credo stia qui showregione(this.value) impostato in entrambi i select. Come posso passare impostare che nel GET[q] deve inserire la regione e nella variabile Get pr deve mettere il value di provincia con js?

  9. #9
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    1) il file getregione.php non ti crea una select/option ma una tabella
    2) non dici che errori ti da, non specifici niente devi essere più preciso

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    4
    Non mi fornisce nessun errore, non funziona proprio, la select infatti viene creata nel file index.php e non nel file getregione, nel getregione mostro i risultati. Funziona solo la ricerca per regione se elimino la variabile pr da js.

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.