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

Discussione: Problemi di 'form'.

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    101

    Problemi di 'form'.

    Ciao,
    volevo creare un form con 2 campi 'select name' in cui il secondo campo caricasse dinamicamentei dati in base alla scelta del primo del tipo:
    se nel primo campo scelgo fra un elenco di regioni la regione 'Lombardia', nel secondo campo deve caricarsi l'elenco delle 'province' della lombardia, rimanendo sulla stessa pagina.

    Qual'è la soluzione migliore?

    Grazie per ora,
    Ciao.

  2. #2
    La miglior soluzione, anzi magari l'unica! Una applicazione PHP "con l'utilizzo di AJAX".

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    101
    Ciao Diego,
    io uso (anche se da poco) PHP con MySQL e immagino che si possa ugualmente fare, ma non conosco la sintassi che mi carichi i dati dinamicamente nel secondo campo.

    Pensavo si potesse fare inserendo nella stessa pagina 2 form in cui il primo dichiararlo in questo modo:

    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">


    Scegli la regione:</p>
    <label>Regione:
    <select name="regione" size="1">
    <option selected value="">...</option>
    <?php
    while ($regione=mysql_fetch_array($regioni)) {
    $idregione=$regione['id'];
    $nomeregione=htmlspecialchars($regione['nome']);
    echo "<option value='$idregione'>$nomeregione</option>\n";
    }
    ?>
    </select></label>

    </form>

    <form action="dati_provincia.php" method="post">


    Visualizza i dati della seguente Provincia:</p>
    <label>Provincia:
    <select name="provincia" size="1">
    <option selected value="">...</option>
    <?php
    while ($provincia=mysql_fetch_array($province)) {
    $idprovincia=$provincia['id'];
    $nomeprovincia=htmlspecialchars($provincia['nome']);
    echo "<option value='$idprovincia'>$nomeprovincia</option>\n;
    }
    ?>
    </select></label>

    <input type="submit" value="Cerca" />
    </form>

    Cosa c'è che non va?
    Come posso aggiustare questi form, o cosa dovrei fare per arrivare al mio scopo?

  4. #4
    Ciao! Bhé, se non si vuole utilizzare l'AJAX, puoi effettuare un onselect sul tuo primo elemento select, ricaricando la pagina e passando un id regione. Ma in questo modo la pagina verra ricaricata all'utente. Se invece vuoi che l'utente non avverta questo "movimento" devi utilizzare ajax. Vorrei capire meglio. Se è possibile puoi postare tutto il codice compreso le query? Cosi cerchiamo di risolvere il problema!

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    101
    Rieccomi!
    Supponiamo di avere 2 tabelle:

    tab_regioni:
    id----
    regione-----

    tab_province:
    id---
    provincia---
    id_regione--- (regioni.id) ;

    e questo è il mio codice (errato):

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>Province Italiane.</title>
    <meta http-equiv="Content-Type"
    content="text/html; charset=iso-8859-1" />
    </head>
    <body>

    <h1>Le province Italiane.</h1>

    <?php
    $cnsdb = @mysql_connect('host', 'user', 'pass');
    if (!$cnsdb) {
    exit('

    Errore di connessione!</p>');
    }
    $seldb = mysql_select_db('italiadb');
    if (!$seldb) {
    exit('

    Errore: database non selezionato!</p>');
    }

    $regioni = @mysql_query('select id, regione
    from regione');
    if (!$regioni) {
    exit('

    Lista Regioni non caricata!</p>');
    }
    ?>

    <form action="provincia.php" method="post">


    Scegli la Regione:</p>
    <label>Regione:
    <select name="idregione" size="1">
    <option selected value="">Tutte</option>
    <?php
    while ($regione=mysql_fetch_array($regioni)) {
    $idregione=$regione['id'];
    $nomeregione=htmlspecialchars($regione['regione']);
    echo "<option value='$idregione'>$nomeregione</option>\n";
    }
    if ($idregione != '') {
    $province = @mysql_query("select id, provincia
    from provincia
    where id_regione='$idregione'");
    if (!$province) {
    exit('

    Lista province non caricata!</p>');
    }


    Scegli la provincia:</p>
    <label>Provincia:
    <select name="idprovincia" size="1">
    <option selected value="">Tutte</option>
    <?php
    while ($provincia=mysql_fetch_array($province)) {
    $idprovincia=$provincia['id'];
    $nomeprovincia=htmlspecialchars($provincia['provincia']);
    echo "<option value='$idprovincia'>$nomeprovincia</option>\n";
    }
    }
    ?>
    </select></label>
    <input type="submit" value="VAI" />
    </form>



    Home Page.</p>

    </body>
    </html>

    Ora chiedo:
    Come sistemare le cose per far in modo che il campo -<select name="idprovincia">- carichi dinamicamente il suo elenco di province in base alla regione scelta ?

    Esempio:
    Se nel -<select name="idregione">- passo il valore di "Piemonte" , nel -<select name="idprovincia">- deve caricarsi, in modo dinamico, e senza cambiamenti di pagina l'elenco delle province del Piemonte.

    Grazie per ora.

  6. #6
    We, ciao! L'ho fatto molto rapidamente!

    page.php
    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
     <head>
      <title>Province Italiane.</title>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
      <script type="text/javascript" src="./ricarica.function.js"></script>
     </head>
     <body>
      <h1>Le province Italiane.</h1>
    <?php
    
     if(isset($_GET["idregione"]))
      $idregione=$_GET["idregione"];
     else
      $idregione="";
    
     $cnsdb=@mysql_connect("host", "user", "pass");
    
     if(!$cnsdb) {
    
      exit("
    
    Errore di connessione!</p>");
    
     }
    
     $seldb=mysql_select_db("italiadb");
    
     if(!$seldb) {
    
      exit("
    
    Errore: database non selezionato!</p>");
    
     }
    
     $regioni=@mysql_query("select id, regione from regione");
    
     if(!$regioni) {
    
      exit("
    
    Lista Regioni non caricata!</p>");
    
     }
    
    ?>
    
     <form action="provincia.php" method="post">
      
    
    Scegli la Regione:</p>
      <label for="regione">Regione:</label>
      <select id="regione" name="idregione" size="1" onchange="ricarica(this);">
       <option selected value="">Tutte</option>
    <?php
    
     while($regione=mysql_fetch_array($regioni)) {
    
      if($idregione!="")
       $idregione=$regione["id"];
    
      $nomeregione=htmlspecialchars($regione['regione']);
    
      echo "<option value='$idregione'>$nomeregione</option>\n";
    
     }
    
     if($idregione!="") {
    
      $province=@mysql_query("select id, provincia from provincia where id_regione='$idregione'");
    
      if(!$province) {
    
       exit("
    
    Lista province non caricata!</p>");
    
      }
    
    ?>
      </select>
      
    
    Scegli la provincia:</p>
      <label for="provincia">Provincia:</label>
      <select id="provncia" name="idprovincia" size="1">
       <option selected value="">Tutte</option>
    <?php
    
      while($provincia=mysql_fetch_array($province)) {
    
       $idprovincia=$provincia['id'];
       $nomeprovincia=htmlspecialchars($provincia['provincia']);
       echo "<option value='$idprovincia'>$nomeprovincia</option>\n";
    
      }
    
     }
    
    ?>
      </select>
      <input type="submit" value="VAI" />
     </form>
    
      
    
    Home Page.</p>
     </body>
    </html>
    ricarica.function.js
    codice:
     function ricarica(ObjectSelect) {
    
      var Temp=ObjectSelect.options[ObjectSelect.selectedIndex].value;
    
      if(Temp!="")
       window.location="./page.htm?idregione="+(Temp);
    
     }

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    101
    Ciao Diego,
    ma quel "ricarica.function.js" è un file a parte o va inserito nel codice?

  8. #8
    ciao, no è a parte! Cmq ti conisglio di rifarlo con AJAX!

    codice:
      <script type="text/javascript" src="./ricarica.function.js"></script>

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    101
    Di Java non conosco nulla, non ho mai avuto approcci, e sinceramente non ho il tempo necessario per studiarmelo ora per via di un progetto.

    Di PHP ho già immagazzinato tanti concetti, ma come vedi me ne servono degli altri.
    Ma il tuo script non può proprio funzionare senza AJAX, ma con PHP e Mysql?
    Se può, allora non ho capito dove inserire il "ricarica.function.js" !

  10. #10
    Ciao! No, non devi imparare Java, anche perché non c'entra nulla. "AJAX", detto brutalmente, è ancora javascript. E Javascript non è Java. Tutti e due i file devono stare nella stessa cartella, per come è stato progettato il programma, quindi page.php e ricarica.function.php. Il metodo che ti ho consigliato, ti ripeto, non è il migliore almeno secondo me e "non è 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.