Visualizzazione dei risultati da 1 a 9 su 9

Discussione: caselle e ajax

  1. #1

    caselle e ajax

    Ho un form con due combo in cui una viene popolata dinamicamente usando ajax. Questo il codice della pagina con il form:
    <?php
    include "setup.php";
    $db = mysql_connect($servidor, $usuario, $password);
    mysql_select_db("$base",$db);
    ?>
    <!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=iso-8859-1" />
    <title>Select concatenate</title>
    <script language="javascript">

    var ricerca_pro;
    function avviso() {
    alert ("Attento ad Ajax");
    }
    function cerca()
    {
    var valorecampo = document.form1.codreg.options[document.form1.codreg.selectedIndex].value;
    // per l'oggetto nativo XMLHttpRequest
    if (window.XMLHttpRequest) {
    ricerca_pro = new XMLHttpRequest();
    ricerca_pro.onreadystatechange = ricevi;
    ricerca_pro.open("GET", "cerca.php?codreg="+valorecampo,true);
    ricerca_pro.send(null);
    // per IE
    } else if (window.ActiveXObject) {
    ricerca_pro = new ActiveXObject("Microsoft.XMLHTTP");
    if (ricerca_pro) {
    ricerca_pro.onreadystatechange = ricevi;
    ricerca_pro.open("GET", "cerca.php?codreg="+valorecampo,true);
    ricerca_pro.send();
    }
    }
    }

    function ricevi() {
    var strRes;
    var arrValori;
    if (ricerca_pro.readyState == 4) {
    if (ricerca_pro.status == 200){
    document.getElementById('citta').innerHTML=ricerca _pro.responseText;
    } else {
    document.getElementById('citta').innerHTML="<selec t><option>ERRORE "+ricerca_pro.status+"</option></select>";
    }
    }
    }
    </script>
    </head>

    <body>
    Scegli multiple:
    <form id="form1" name="form1" method="post" action="ricevi.php" onsubmit="avviso()">
    <label>regione
    <select name="codreg" accesskey="1" tabindex="1" onchange="cerca()">
    <option selected="selected" value=0>Scegli la regione</option>
    <?php
    $sql = "SELECT DISTINCT codreg,regione FROM regioni ORDER BY regione";
    $result = mysql_query($sql);
    while ($myrow=mysql_fetch_array($result)) {

    echo "<option value=$myrow[codreg]>$myrow[regione]</option>";

    }

    ?>
    </select>
    </label>



    <label>
    citt&agrave;
    <div id=citta>
    <select name="citta" accesskey="2" tabindex="2" onchange="avviso()">
    </select>

    </div>
    </label>
    </p>
    <input type=submit value=invia>
    </form>
    </body>
    </html>

    e questo il codice della pagina cerca.php che si incarica di riempire la seconda select:


    <?php
    include "setup.php";
    $db = mysql_connect($servidor, $usuario, $password);
    mysql_select_db("$base",$db);


    $sql = "SELECT * FROM province WHERE codreg='$codreg' ORDER BY provincia";
    $result = mysql_query($sql);
    echo "<select name=codprov onchange=\"avviso()\"><option selected=selected value=0>Scegli la provincia</option>";
    while ($myrow=mysql_fetch_array($result)) {

    echo "<option value=$myrow[codprov]>$myrow[provincia]</option>";

    }
    echo "</select>";
    ?>

    Ora il problema è che con I.E. quando aggiorno la seconda select la funzione avviso() non si esegue mentre con firefox si esegue. Sembra che quando ajax va a scrivere la second select non si porti dietro anche la avviso(). Mi sapete spiegare la ragione?
    P.S. Il tutto mi serve in quanto debbo costruire un sistema con select aa cascata che saranno 4 o 5 Grazie

  2. #2
    nessuno che mi da una dritta?
    Il nocciolo sta nel costruire tre o più combo a cascata. Con due ci riesco ma alla terza mi blocco. C'è un buon samaritano che mi da un consiglio?

  3. #3
    up

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    In questo forum non si tratta il PHP e per molti e' difficile interpretare il significato del codice... per ricevere aiuto con il javascript devi postare la pagina cosi' come la riceve il browser, oppure un link alla stessa pubblicata.

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  5. #5
    Dato che ho risolto il problema mi impegno a postare il codice per chi ne avesse bisogno. Pazientate fino a domani perchè ora vado a dormire, mi si chiudono gli occhi.

  6. #6
    dunque potete vedere il tutto funzionante a questo indirizzo http://maurizio.pesaronet.com/

  7. #7
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Devi far si che scegliendo un'altra regione si azzerino anche i comuni...

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  8. #8
    Dammi una dritta, comunque ci provo, grazie per l'attenzione

  9. #9
    Fatto, ora mi sembra funzionare bene, che ne dici?

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.