Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: select dinamiche ajax

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    24

    select dinamiche ajax

    Buonasera!
    Sapete come si fanno a creare delle select dinamiche in ajax?
    Precisamente io inizialmente ho 2 select...una dove è possibile selezionare una regione (prelevate da database),una volta selezionata,si abilita la seconda select in cui sono inserite le province della regione selezionata, estratte tramite ajax da un database.

    Non ho avuto problemi per la prima select,solo che una volta prelevata la regione,e aver effettuato la query per determinarmi le relative province,non so come aggiungere quest'ultime come option alla select precedentemente creata!
    Sapete come si fa?...Ne avrei veramente bisogno!Grazie mille...

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Leggi qui
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    24
    Io veramente sarei arrivato ad una soluzione,...magari se qualcuno mi dà un'occhiata al codice lo posto...Solo una cosa non funziona e non riesco a capire perchè!!

  4. #4
    posta il codice che gli si da un'occhiata

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    24
    regioni.php

    codice:
    <html> 
    <head> 
    <script type="text/javascript" src=scripts.js>
    </script> 
    </head>
    
    <body>
    
    <?php 
    echo"<form name='scelta'> 
    <select name='reg' onchange='abilitaProv(this.value)'> 
    <option selected>Regione";
    $conn=mysql_connect("...","...","...") or die("Connessione fallita"); 
    mysql_select_db("11gennaio")or die("selezione db fallita!");
    $query="SELECT nome from regione"; 
    $ris=mysql_query($query); 
    while($r=mysql_fetch_array($ris)){ 
    $t=$r['nome'];
    echo"<option value=$t>$t";
     } 
    echo"</select>";
    mysql_close($conn); 
    ?>
    
    <span id="divreg"> 
    <select name='prov' disabled> 
    <option selected>Province </select> 
    </span> 
    <input type="radio" name="perc" value="Percentuale" DISABLED>Percentuale 
    <input type="radio" name="ass" value="Valore Assoluto" DISABLED >Valore Assoluto 
    </form> 
    
    </body>
    </html>
    scripts.js
    codice:
    function abilitaProv(str){ 
    var ele=document.scelta.prov; 
    ele.removeAttribute("disabled"); 
    
    if (window.XMLHttpRequest) {
    // code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    xmlhttp2=new XMLHttpRequest(); 
    } else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
     } 
    
    xmlhttp.onreadystatechange=function() {
     if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("divreg").innerHTML=xmlhttp.responseText;
     } 
    }
     xmlhttp.open("GET","getDati.php?reg="+str,true); 
    xmlhttp.send(); } 
    
    function abilitaRadio(){ 
    var ele=document.scelta.perc;
    ele.removeAttribute("disabled"); 
    var ele2=document.scelta.ass; 
    ele2.removeAttribute("disabled"); 
    }
    ed infine getDati.php
    codice:
    <?php
    $reg=$_GET['reg']; 
    $conn=mysql_connect("...","...","....")or die("connessione fallita");
    mysql_select_db("11gennaio") or die ("selezione db fallita"); 
    $query="SELECT nomep FROM provincia where nomer=$reg"; 
    $ris=mysql_query($query)or die("query fallita"); 
    echo"<select name='prov' onchange='abilitaRadio()'> 
    <option selected>Province"; 
    
    while($r=mysql_fetch_array($ris)){ 
    $t=$r['nomep'];
    echo"<option value=$t> $t</option>"; 
    } ?>

    Praticamente il mio problema è la query per prelevare le province...Mi dice "query fallita", ma non capisco perchè...se provo a visualizzare solo getDati.php mettendo nella query "SELECT....where nomer='Campania'" mi funziona,infatti mi mette nella select tutte le province correttamente.Mettendo semplicemente $reg,non mi aggiunge nulla nella select,eppure il parametro "str" passato alla funzione abilitaProv è corretto,perchè ho provato a stampare quello che selezionavo e funzionava però niente da fare non mi popola la seconda select!

  6. #6
    mancano gli apici nella query

    Codice PHP:
    $query="SELECT nomep FROM provincia where nomer='$reg'"
    e sarebbe meglio inserirli in tutte le option presenti nei file regioni.php e getDati.php

    Codice PHP:
    echo"<option value='$t'>$t</option>"

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    24
    ah è vero...
    Grazie tante!
    Ma secondo te va bene quello che ho fatto?che prima in regioni.php ho creato la select province vuota,poi in getDati.php l'ho ricreata dandole lo stesso nome della precedente, e l'ho popolata...perchè sinceramente non ho ben capito come si fanno ad aggiungere delle option a select già esistenti

  8. #8
    mah, direi di si. poi dipende dal risultato che devi ottenere.
    se non è niente di professionale lascialo così.

    comunque, il modo di aggiungere le option ad una select esiste, ma il codice si complicherebbe.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    24
    si ho visto è un pochetto complicato...lascio così allora grazie mille!

    Dopo dovrò completare l'esercizio, spero di non avere altri problemi...altrimenti mi ritrovo di nuovo qui ihihih
    Thank Youuuu

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    24
    Ora praticamente nel file principale regioni.php ho aggiunto un div nascosto
    codice:
     
    .......
    <input   type="radio"  name="perc" value="Percentuale" DISABLED onClick="prova(this.value)" >Percentuale 
    <input  type="radio" name="ass" value="Valore Assoluto" DISABLED onClick="prova(this.value)">Valore Assoluto
    </form>
    
    <div id="info" style="visibility:hidden">
     </div>
    Dove vanno inserite poi tutte le info sulla popolazione della provincia selezionata(Donne,Uomini,Totaleresenti tra l'altro nel database provincia).

    Le due radiobutton "Valore assoluto" e "Percentuale" servono per:
    Se clicco sul primo a visualizzarmi nel div Donne Uomini e Totale però in valore assoluto
    Mentre se clicco il secondo a visualizzarmi le stesse informazioni sotto forma di percentuale.

    In scripts.js ho aggiunto
    codice:
    function prova(str){ 
    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) { 
    var e=document.getElementById("info"); 
    e.style.visibility="display"; 
    e.innerHTML=xmlhttp.responseText; 
    } 
    } 
    xmlhttp.open("GET","getProva.php?tipo="+str,true); 
    xmlhttp.send(); }
    e poi ho creato un file getProva.php
    codice:
    <?php 
    $cookie=$_COOKIE['nomeprov']; 
    $tipo=$_GET['tipo']; 
    $conn=mysql_connect("...","...","...")or die("connessione fallita"); mysql_select_db("11gennaio") or die ("selezione db fallita"); 
    $query="SELECT uomini,donne FROM provincia where nomep='$cookie'"; $ris=mysql_query($query)or die("query fallita");
     
    while($r=mysql_fetch_array($ris)){ 
    $u=$r['uomini']; 
    $d=$r['donne']; 
    
    //FARE IL CONTROLLO SU $tipo
    //se $tipo è Valore Assoluto 
    
    echo"VALORE ASSOLUTO
    "; 
    echo "Uomini: ".$u;
    echo"
    "; 
    echo "Donne: ".$d; 
    echo "
    "; 
    $tot=$d+$u; 
    echo "Totale: ".$tot; 
    echo"
    "; 
    
    //se $tipo è "Percentuale" 
    echo"IN PERCENTUALE
    "; 
    $pu=($u*100)/$tot; 
    $pd=($d*100)/$tot; 
    echo "Uomini: ".$pu." %"; 
    echo"
    "; 
    echo "Donne: ".$pd." %"; 
    echo"
    "; 
    echo "Totale: ".($pu+$pd)." %"; 
    } ?>
    Solo che praticamente l'evento onClick sulle radiobutton non funziona...mentre per quanto riguarda getProva.php funziona solo se io appunto gli metto per esempio nomep='Napoli'.

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.