Newsgroup: it.comp.www.php
Titolo: Più form nello stesso form

Gentile gruppo,
faccio subito una piccola premessa,
1) sono alle prime armi e perciò Vi prego di non prendermi in giro se
quello che dirò o chiederò Vi sembrera stupido e banale;
2) ho già provato a fare una ricerca nei vecchi post con google ma non
ho trovato nulla a tal proposito.
Fatta la premessa, vengo subito al mio problema.
Ho realizzato in php un form per la raccolta dati, ora vorrei che
quando l'utente della pagina seleziona la provincia di appartenenza,
cliccki su un tasto per far aprire una pagina contenente tutte le
città appartenenti a quella provincia.
Ho provato a realizzare un form nel form ma non funziona!!!
Qualcuno saprebbe darmi qualche consiglio?
Grazie.
Peppe

 Ho provato a realizzare un form nel form ma non funziona!!!
Puoi fare selezionare la provincia in pagina1.php e passi i dati a
pagina2.php dove fai scegliere la città in base alla provincia selezionata.
infine in pagina3.php memorizzi tutti i dati
(ovviamente si può fare tutto su una pagina... ma è per farti capire i
passaggi)
Un altro metodo sarebbe usare javascript, però dovresti mandare al client
l'elenco di tutte le città e farle filtrare dal javascript in base alla
provincia selezionata

 ha scritto nel messaggio
news:d7556fce.03070...@posting.google.com...


 Davide
Se per te non è un problema, ti sarei molto grato di ricevere il
codice per poterlo studiare.
Grazie anticipatamente.
Peppe.

città appartenenti a quella provincia.
Lo devi fare in JavaScript, magari usando un IFRAME.
La combobox di Provincia ha, OnChange, una attivazione sull'IFRAME che
a sua volta imposta le opzioni della combobox Comuni.
Dato che questo e' l'uso piu' frequente, probabilmente trovi qualcosa,
su Google, con
 
http://www.google.it/search?q=province+onchange+comuni
oppure, specificando il metodo:
 
http://www.google.it/search?q=onchange+iframe+query
Leonardo

 ha scritto nel messaggio
news:d7556fce.03070...@posting.google.com...

ho 2 pagine:
A) registrazione.php e
B) registra88.php
La B non viene mai visualizzata, controlla e modifica i dati che vengono
spediti dal form in A e finche i dati non sono a posto torna indietro con
Header ("Location: $HTTP_REFERER");
------------------ A)
registrazione.php --------------------------------------------------
function input_row ($title,$name)
{
 global $dati;
 echo "
  <tr>
     <td>
    <p align=right><span CLASS=\"his\"> ".$title.":</span></p>
   </td>
   <td>
    <input type=\"text\" NAME=\"dati_inoltrati[$name]\"
VALUE=\"".$dati[$name]."\" class=\"input\" SIZE=\"35\" maxlength=\"40\">
   </td>
  <tr>
 ";
}
Session_start();
...
...
if (isset($error_message))
{
 echo"
     <tr>
      <td width=\"100%\" colspan=\"2\" class=\"H12\" align=\"center\">
       <br>
       <b>ATTENZIONE</b><br><br>
       $error_message <br><br>
      </td>
     </tr>
 ";
 session_unregister ("error_message");
}
echo "
    <form name=\"regform\"
action=\"registra88.php?tipologia=$tipologia&plus=$plus\" method=\"post\">
     <tr>
      <td align=\"center\" colspan=\"2\">
       <table border=0 cellPadding=1 cellSpacing=1 width=\"100%\">
";
        input_row("*Nome","nome");
        input_row("*Cognome","cognome");
// ----------------------- selezione settore di
attivita --------------------------
 echo "
        <tr>
         <td width=\"20%\" class=\"his\" align=\"right\">
          *Settore di attività:
         </td>
         <td  width=\"30%\"><span CLASS=\"his\">
     <select name=\"dati_inoltrati[settore]\"
onchange=\"document.regform.submit();\" class=\"input\"
style=\"width:190px\">";
 if (!isset($dati[settore]) or $dati[settore]=="null")
 {
  echo "
      <option value=null selected>-seleziona-</option>";
 }
 $settore_query = "SELECT * FROM tbl_aziende_settore ORDER BY settore";
 $settore_risult = mysql_query($settore_query) or die("Impossibile eseguire
la query.");
 while ($settore_record = mysql_fetch_assoc($settore_risult))
 { echo "
      <option value=$settore_record[settore]";
  if ($settore_record[settore] == $dati[settore])
  {  echo " selected"; }
  echo "
                  >$settore_record[settore]</option>";
 }
 echo "
     </select></span>
         </td>
 ";
 // ----------------------- selezione
sottosettore --------------------------
 echo "
        <tr>
         <td width=\"20%\" class=\"his\" align=\"right\">
          *Sottosettore:
         </td>
         <td  width=\"30%\"><span CLASS=\"his\">
     <select name=\"dati_inoltrati[sottosettore]\" class=\"input\"
style=\"width:190px\">";
 if (!isset($dati[sottosettore]) or $dati[sottosettore]=="null") { echo "
      <option value=null selected>-seleziona-</option>";}
 $sottosettore_query = "SELECT * FROM tbl_aziende_sottosettore WHERE
settore='$dati[settore]' ORDER BY sottosettore";
 $sottosettore_risult = mysql_query($sottosettore_query) or die("Impossibile
eseguire la query.");
 while ($sottosettore_record = mysql_fetch_assoc($sottosettore_risult))
 { echo "
      <option value=$sottosettore_record[sottosettore]";
  if ($sottosettore_record[sottosettore] == $dati[sottosettore])
  {  echo " selected"; }
  echo "
                    >$sottosettore_record[sottosettore]</option>";
 }
 echo "
     </select></span>
         </td>
";
 // ----------------------- fine selezioni settore e
sottosettore --------------------------
     <input class=\"inp\" type=\"submit\" name=\"submit_form\"
value=\"Procedi\" class=\"inp\">
    </form>
....
------------------ B)
registra88.php --------------------------------------------------
function back ($message)
{
 global $HTTP_REFERER;
 global $error_message;
 $error_message=$message;
 session_register ("error_message");
 Header ("Location: $HTTP_REFERER");
 exit;
}
session_start();
if (!isset($submit_form)) // controlli se si arriva qui da aggiornamento di
select doppia
{
 if ($dati_inoltrati[settore]!=$dati[settore])
 {
  unset($dati_inoltrati[sottosettore]);
  session_unregister($dati[sottosettore]);
 }
 $dati = $dati_inoltrati;
 session_register("dati");
 Header ("Location: $HTTP_REFERER");
}
else
{
// --------------- CONTROLLI SUI DATI ---------------------
 $dati = $dati_inoltrati;
 if ($tipologia=="utente" and $dati[nome] == "")
 {  back  ( "Non è stato compilato il campo Nome" ); }
 if ($tipologia=="utente" and $dati[cognome] == "")
 {  back  ( "Non è stato compilato il campo Cognome" ); }
... e qua si continua....
}
Ho cercato di semplificarlo un pò, se ti serve qualche chiarimento puoi
scrivermi, se vuoi vedere il codice in azione lo metto su fra qualche giormo
nella registrazione di 
www.palestra.it
Ciao Davide



Scusa la domanda...
ma sta cosa l'ho gia vista in un formdi virgilio per gli account gratuiti
se non erro..
..ma non ti sembra una pirlata nonché una perdita di tempo visto che è un
form per la raccolta di dati se inserisco la provincia è ovvio che so
anche in che citta mi trovo (o sono nato) e di certo non ho bisogno che
qualcuno mi mostri la lista delle citta persenti nella mia provincia o
no??
Fai un favore a tutti ed inserisci due semplici campi text!

 Il Wed, 09 Jul 2003 04:09:49 -0700, 
gsib...@yahoo.it
 ha scritto:
Vedila così:
supponiamo che tu sia nato a Sant'Agata de Goti; piccolo paese in
provincia di Benevento. Ti colleghi al sito del tizio e scrivi il nome
del comune così com'è. Dopo di te arriva una altro genio, anch'egli
nato nello stesso comune e, siccome non ha la tua cultura, scrive: "S.
Agata dei Goti". Continuiamo ed arriva il terzo genio che, questa
volta, scrive "S. Agata de G..". E così via....
Ad un certo punto, il nostro amico webmaster vuole, per ragioni sue,
stampare l'elenco degli utenti registrati al sito ordinandolo per
città di nascita. Secondo te, tenendo conto della situazione appena
descritta che, credimi, non è poi tanto fantasiosa, l'elenco è esatto?
Io dico di no. E non credere che ordinando il tutto per CAP risolvi lo
stesso il problema. Infatti, molti piccoli paesi condividono lo stesso
CAP.
Quindi, tanto pirlata la soluzione scelta dal nostro amico webmaster
non è...!!!
Forse, non sarà un genio del PHP e della programmazione in genere, ma
comunque ha capito, IMHO, che se vuole diventare un bravo
programmatore deve ragionare con la testa degli utonti (utenti, nda) e
non con la sua; e che quando meno questi ultimi fanno meno problemi
avrà lui.
Ora, il piacere fallo tu a noi, prima di postare, rifletti.....
Grazie e ciao.
vbenry 


descritta che, credimi, non è poi tanto fantasiosa, l'elenco è esatto?
Quoto e sottoscrivo accoratamente.
Been there, done that :-(
Leonardo

 Grazie e ciao.
Concordo
Juz