cicli di fom dati
Moderator: magallo
cicli di fom dati
Ho un problema a riguardo delle form che ciclano per ricavare dati in base ai valori di risposta.
allora :
ho un database esterno al sistema cms madesimple in cui ci sono dati di enti sociali i quali propongono dei corsi.
ora il mio compito e' di visualizzare una form iniziale in cui c'e' un select a tendina contenente i nomi dei vari tipi di corsi per tipologia.
in base lalla scelta di questa tipologia devo rivisualizzare la stessa pagina con una seconda select contenete gli enti preposti che propongono tali corsi.
infine con un bottone di conferma mi riporta la tabella dei vari corsi contenete le indicazioni.
ora il sistema non e' un problema con una pagina standard in php ma qui nn riesco a capire come posso far richiamare la stessa pagina con i valori che vengono passati da una pagina all'altra .
confido in voi se qualcuna ha gia' avuto lo stesso problema.
ciaooooooo
allora :
ho un database esterno al sistema cms madesimple in cui ci sono dati di enti sociali i quali propongono dei corsi.
ora il mio compito e' di visualizzare una form iniziale in cui c'e' un select a tendina contenente i nomi dei vari tipi di corsi per tipologia.
in base lalla scelta di questa tipologia devo rivisualizzare la stessa pagina con una seconda select contenete gli enti preposti che propongono tali corsi.
infine con un bottone di conferma mi riporta la tabella dei vari corsi contenete le indicazioni.
ora il sistema non e' un problema con una pagina standard in php ma qui nn riesco a capire come posso far richiamare la stessa pagina con i valori che vengono passati da una pagina all'altra .
confido in voi se qualcuna ha gia' avuto lo stesso problema.
ciaooooooo
- protempore
- Power Poster
- Posts: 599
- Joined: Mon Jan 14, 2008 9:08 pm
Re: cicli di fom dati
devi recuperare i valori "get" o "post" del form attivato dalle select...
con la variabile $smarty.get.nomevariabile oppure $smarty.post.nomevariabile
con la variabile $smarty.get.nomevariabile oppure $smarty.post.nomevariabile
An eye for an eye will make the whole world blind
Mahatma Gandhi (1869-1948)
Mahatma Gandhi (1869-1948)
Re: cicli di fom dati
ok grazie pero' ho un piccolo problema dovuto al fatto che nn capisco come come fare .
esempio
1) creo il template,
2) creo un tempalte definito dall'utente chiamto 'frm01'
3) costruisco il codice della form ...
$sql = "select * from aree";
$result = mysql_query($sql);
if (!$result ) {
die('errore databse: '. mysql_error());
}
print "
Seleziona area 1 ";
while ($area1=Mysql_fetch_array($result,MYSQL_BOTH )){
print "". $area1['area_nome'] . "";
}
print "
";
e a queto punto nn so se devo usare un template con "form builder" per poter eseguire la form
oppure
c' qualche cosa che mi permette di eseguire il submit?
devo generare un campo
esempio
1) creo il template,
2) creo un tempalte definito dall'utente chiamto 'frm01'
3) costruisco il codice della form ...
$sql = "select * from aree";
$result = mysql_query($sql);
if (!$result ) {
die('errore databse: '. mysql_error());
}
print "
Seleziona area 1 ";
while ($area1=Mysql_fetch_array($result,MYSQL_BOTH )){
print "". $area1['area_nome'] . "";
}
print "
";
e a queto punto nn so se devo usare un template con "form builder" per poter eseguire la form
oppure
c' qualche cosa che mi permette di eseguire il submit?
devo generare un campo
- protempore
- Power Poster
- Posts: 599
- Joined: Mon Jan 14, 2008 9:08 pm
Re: cicli di fom dati
se ho ben capito... io farei così.
crei tre UDT con le query al DB che creano le due select e i dati di dettaglio...
le select devono avere il javascript per attivare il submit all'atto della selezione:
creo udt_select1
creo udt_select2
creo udt_dettaglio
il template, grosso modo dovrebbe essere così...
non funzionerà un tubo, ma è solo per dare l'idea...

crei tre UDT con le query al DB che creano le due select e i dati di dettaglio...
le select devono avere il javascript per attivare il submit all'atto della selezione:
Code: Select all
<select name='frm01' size='1' onchange="this.form.submit();">
...
creo udt_select1
Code: Select all
$sql = "select * from aree";
$result = mysql_query($sql);
if (!$result ) {
die('errore databse: '. mysql_error());
}
print "
<select name='frm01' size='1' onchange=\"this.form.submit();\">
<option value='0'>Seleziona area 1</option> ";
while ($area1=Mysql_fetch_array($result,MYSQL_BOTH )){
print "<option value='" . $area1['id'] . "'>". $area1['area_nome'] . "</option>";
}
print "
</select>
";
Code: Select all
$frm01=$params['frm01'];
$sql = "select * from enti where id_area=".$frm01;
$result = mysql_query($sql);
if (!$result ) {
die('errore databse: '. mysql_error());
}
print "
<select name='frm02' size='1' onchange=\"this.form.submit();\">
<option value='0'>Seleziona ente 1</option> ";
while ($ente1=Mysql_fetch_array($result,MYSQL_BOTH )){
print "<option value='" . $ente1['id'] . "'>". $ente1['ente_nome'] . "</option>";
}
print "
</select>
";
creo udt_dettaglio
Code: Select all
$frm02=$params['frm02'];
$sql = "select * from enti where id_ente=".$frm02;
$result = mysql_query($sql);
if (!$result ) {
die('errore databse: '. mysql_error());
}
while ($ente1=Mysql_fetch_array($result,MYSQL_BOTH )){
print $ente1['id'] . " ". $ente1['ente_nome'];
}
Code: Select all
{if $smarty.post.frm01=='' && $smarty.post.frm02==''}
<form id="selectArea" method="post" action="index.php">
{udt_select1}
</form>
{elseif $smarty.post.frm02==''}
<form id="selectEnte" method="post" action="index.php">
{udt_select2 frm01=$smarty.post.frm01}
</form>
{else}
{udt_dettaglio frm02=$smarty.post.frm02}
{/if}

Last edited by protempore on Thu Jun 17, 2010 11:17 pm, edited 1 time in total.
An eye for an eye will make the whole world blind
Mahatma Gandhi (1869-1948)
Mahatma Gandhi (1869-1948)
Re: cicli di fom dati
ti ringrazio
sei stato molto gentile ma sono riuscito a risolvere il problema su una sola UDT
pero' devo dire che mi hai dato l'dea sul funzionamento dei templates el la funzione di smarty nel cms madesimple.
ora molte cose mi sono chiare.
grazie ancora per il tuo tempo.
sei stato molto gentile ma sono riuscito a risolvere il problema su una sola UDT
pero' devo dire che mi hai dato l'dea sul funzionamento dei templates el la funzione di smarty nel cms madesimple.
ora molte cose mi sono chiare.
grazie ancora per il tuo tempo.
- protempore
- Power Poster
- Posts: 599
- Joined: Mon Jan 14, 2008 9:08 pm
Re: cicli di fom dati
condividere?ramesse wrote: sei stato molto gentile ma sono riuscito a risolvere il problema su una sola UDT
...

An eye for an eye will make the whole world blind
Mahatma Gandhi (1869-1948)
Mahatma Gandhi (1869-1948)
Re: cicli di fom dati
ti rilascio il codice cosi' mi dici :::::
$settore=1;
if (!$_POST) {
$rec_A1="";
$rec_A2="";
$sel_Ente="";
$id_Ente="";
$Sede="";
} else {
$rec_A1= $_POST['selA1'];
$rec_A2= $_POST['selA2'];
$sel_Ente=$_POST['selEnte'];
$id_Ente=$_POST['selEnte'];
$Sede=$_POST['descr'];
$rec_view=$_POST['rec_view'];
print " selA1........: " .$_POST['selA1'] . "";
print " selA2........: " .$_POST['selA2'] . "";
print " selEnte......: " .$_POST['selEnte'] . "";
print " rec_view ...: " .$_POST['rec_view' ] . "";
print " descr.........: " .$_POST['descr'] . "";
print " mode....: " .$_POST['mode'] . "";
}
if (isset ($_POST['bot_lista'])) {
$rec_view=1;
}
$db = "infogio";
$db_port="3306";
$db_server="localhost";
$db_user="root";
$db_passwd="";
$connection =mysql_connect($db_server,$db_user);
if (!$connection ) {
die('non Posso Connetermi : ' . mysql_error());
}
//echo 'Connected successfully';
$db_select=mysql_select_db($db);
//*********************************************************************************
if ($_POST[rec_view]!="") {
// si vuole visualizzare la scheda del record
$id_rec=$_POST['rec_view'];
$view_list=2;
$db_query="select * from attivita where id=$id_rec ";
print "----1>$db_query";
$result_corso=mysql_query($db_query );
$a_rec_corso=mysql_fetch_array($result_corso,MYSQL_BOTH);
$db_query="select * from anagrafica where id=$a_rec_corso[id_ente] ";
print "----2>$db_query";
$result_ente=mysql_query($db_query );
$a_rec_ente=mysql_fetch_array($result_ente,MYSQL_BOTH);
}
// carico i dati dell'area 1
$sql = "select * from aree where settore= $settore and area_idassoc=0 order by area_nome";
$res_area1 = mysql_query($sql);
if (!$res_area1 ) {
die('errore databse area1: '. mysql_error());
}
if ($rec_A1 != "") {
// carico i valori dell'area 2
$sql = "select * from aree where area_idassoc=$rec_A1 order by area_nome";
$res_area2 = mysql_query($sql);
if (!$res_area2 ) {
die('errore databse area2: '. mysql_error());
}
}
// --------------------------------------------------------------------Inizio Form
print "
";
print " Area 1 :
Seleziona area 1 ";
while ($area1=Mysql_fetch_array($res_area1,MYSQL_BOTH )){
print "". $area1['area_nome'] . "";
}
print "
";
if ($rec_A1 != "") {
print " Area 2 :
Seleziona area 2 ";
while ($area2=Mysql_fetch_array($res_area2,MYSQL_BOTH )){
print "". $area2['area_nome'] . "";
}
print "
";
}
// carico i dati dell'ente
$sql = "select * from anagrafica order by ente_denom asc";
$res_enti = mysql_query($sql);
if (!$res_enti ) {
die('errore databse enti: '. mysql_error());
}
print " Enti :
Selezionare un Ente ..............
";
while ($enti=Mysql_fetch_array($res_enti,MYSQL_BOTH )) {
print "". $enti['ente_denom'] . "";
}
print "
";
print " Sede :
";
print "
";
/*----------------------------------------------------------------- Conferma per il report */
if ($_POST['cmd_ok']) {
// Inizia la ricerca
$str_find="select * from attivita where flg_vis_ut ='*' ";
if ($rec_A1 != "0") {
$str_find.=" and id_area1=$rec_A1 ";
}
if ($rec_A2 != "0") {
$str_find.=" and id_area2=$rec_A2 ";
}
if ($sel_Ente!="" ) {
$str_find=$str_find."and id_ente = $sel_Ente ";
}
if ($Sede!="" ) {
$str_find=$str_find."and att_sede like '%$Sede%' ";
}
// esegue la ricerca nel database.............................................
$db_query=$str_find;
print $db_query."
Record trovati : " . $num_rec ."
";
print " per visualizzare le informazioni inerenti, premere il bottone numerato.
Visualizza
Denominazione Corso
Ente proponente
Sede del corso
Data avvio
Durata
Requisiti Richiesti
";
while ($a_find_rec=Mysql_fetch_array($result,MYSQL_BOTH ) ) {
print "
{$a_find_rec['id']}
{$a_find_rec['att_denom']}
{$a_ente['ente_denom']}
{$a_find_rec['att_sede']}
{$a_find_rec['att_inizio']}
{$a_find_rec['att_durata']}
{$a_find_rec['rif_tit_stud']}
";
}
print "";
}
//-----------------------------------------------------------------------Vista scheda corso
if ($view_list == 2) {
print "
Risultati della ricerca
Denominazione corso :
" . $a_rec_corso[att_denom] . " ";
//-------------------------------------------------------------------------------------------
print "
Ente :
" . $a_rec_ente['ente_denom'] . "
". $a_rec_ente['ente_ind'] . "
";
print $a_rec_ente['ente_cap'] . " - " . $a_rec_ente['ente_comune'] . " - " . $a_rec_ente['ente_prv'] ;
//-----------------------------------------------------------------------------------------------------------
print "
tel: " . $a_rec_ente['ente_tel'] . " - fax: " . $a_rec_ente['ente_fax'] . "
e-mail: " . $a_rec_ente['ente_email'] ."- sito:". $a_rec_ente['ente_sito'] ."
Sede del corso:
" . $a_rec_corso['att_sede'] . "
Durata:
";
//---------------------------------------------------------------------------------------------------------------
print "
". $a_rec_corso['att_durata'] ."
Giorni e orari:
" . $a_rec_corso['att_gg_ora'];
//------------------------------------------------------------------------------------------------------------
print "
Inizio del corso :
" . $a_rec_corso['att_inizio'] . "
Costo previsto :
" . $a_rec_corso['att_costo'] ;
print "
Iscrizione :
" . $a_rec_corso['att_iscrizione'] . "
Descrizione :
" . $a_rec_corso['att_descrizione'];
print "
data di compilazione :
" . $a_rec_corso['att_data_comp'] ;
print "
Destinatari :
" . $a_rec_corso['rif_dest'];
print "
Attestati rilasciati :
" . $a_rec_corso['rif_attesta'];
print"
Requisiti :
" . $a_rec_corso['rif_tit_stud'];
print "
Finanziamento :
" . $a_rec_corso['att_finaz'];
print "
";
print " ";
// -----------------------------------------------------------------------------------------------------------
$view_list=1 ;
}
print " ";
$settore=1;
if (!$_POST) {
$rec_A1="";
$rec_A2="";
$sel_Ente="";
$id_Ente="";
$Sede="";
} else {
$rec_A1= $_POST['selA1'];
$rec_A2= $_POST['selA2'];
$sel_Ente=$_POST['selEnte'];
$id_Ente=$_POST['selEnte'];
$Sede=$_POST['descr'];
$rec_view=$_POST['rec_view'];
print " selA1........: " .$_POST['selA1'] . "";
print " selA2........: " .$_POST['selA2'] . "";
print " selEnte......: " .$_POST['selEnte'] . "";
print " rec_view ...: " .$_POST['rec_view' ] . "";
print " descr.........: " .$_POST['descr'] . "";
print " mode....: " .$_POST['mode'] . "";
}
if (isset ($_POST['bot_lista'])) {
$rec_view=1;
}
$db = "infogio";
$db_port="3306";
$db_server="localhost";
$db_user="root";
$db_passwd="";
$connection =mysql_connect($db_server,$db_user);
if (!$connection ) {
die('non Posso Connetermi : ' . mysql_error());
}
//echo 'Connected successfully';
$db_select=mysql_select_db($db);
//*********************************************************************************
if ($_POST[rec_view]!="") {
// si vuole visualizzare la scheda del record
$id_rec=$_POST['rec_view'];
$view_list=2;
$db_query="select * from attivita where id=$id_rec ";
print "----1>$db_query";
$result_corso=mysql_query($db_query );
$a_rec_corso=mysql_fetch_array($result_corso,MYSQL_BOTH);
$db_query="select * from anagrafica where id=$a_rec_corso[id_ente] ";
print "----2>$db_query";
$result_ente=mysql_query($db_query );
$a_rec_ente=mysql_fetch_array($result_ente,MYSQL_BOTH);
}
// carico i dati dell'area 1
$sql = "select * from aree where settore= $settore and area_idassoc=0 order by area_nome";
$res_area1 = mysql_query($sql);
if (!$res_area1 ) {
die('errore databse area1: '. mysql_error());
}
if ($rec_A1 != "") {
// carico i valori dell'area 2
$sql = "select * from aree where area_idassoc=$rec_A1 order by area_nome";
$res_area2 = mysql_query($sql);
if (!$res_area2 ) {
die('errore databse area2: '. mysql_error());
}
}
// --------------------------------------------------------------------Inizio Form
print "
";
print " Area 1 :
Seleziona area 1 ";
while ($area1=Mysql_fetch_array($res_area1,MYSQL_BOTH )){
print "". $area1['area_nome'] . "";
}
print "
";
if ($rec_A1 != "") {
print " Area 2 :
Seleziona area 2 ";
while ($area2=Mysql_fetch_array($res_area2,MYSQL_BOTH )){
print "". $area2['area_nome'] . "";
}
print "
";
}
// carico i dati dell'ente
$sql = "select * from anagrafica order by ente_denom asc";
$res_enti = mysql_query($sql);
if (!$res_enti ) {
die('errore databse enti: '. mysql_error());
}
print " Enti :
Selezionare un Ente ..............
";
while ($enti=Mysql_fetch_array($res_enti,MYSQL_BOTH )) {
print "". $enti['ente_denom'] . "";
}
print "
";
print " Sede :
";
print "
";
/*----------------------------------------------------------------- Conferma per il report */
if ($_POST['cmd_ok']) {
// Inizia la ricerca
$str_find="select * from attivita where flg_vis_ut ='*' ";
if ($rec_A1 != "0") {
$str_find.=" and id_area1=$rec_A1 ";
}
if ($rec_A2 != "0") {
$str_find.=" and id_area2=$rec_A2 ";
}
if ($sel_Ente!="" ) {
$str_find=$str_find."and id_ente = $sel_Ente ";
}
if ($Sede!="" ) {
$str_find=$str_find."and att_sede like '%$Sede%' ";
}
// esegue la ricerca nel database.............................................
$db_query=$str_find;
print $db_query."
Record trovati : " . $num_rec ."
";
print " per visualizzare le informazioni inerenti, premere il bottone numerato.
Visualizza
Denominazione Corso
Ente proponente
Sede del corso
Data avvio
Durata
Requisiti Richiesti
";
while ($a_find_rec=Mysql_fetch_array($result,MYSQL_BOTH ) ) {
print "
{$a_find_rec['id']}
{$a_find_rec['att_denom']}
{$a_ente['ente_denom']}
{$a_find_rec['att_sede']}
{$a_find_rec['att_inizio']}
{$a_find_rec['att_durata']}
{$a_find_rec['rif_tit_stud']}
";
}
print "";
}
//-----------------------------------------------------------------------Vista scheda corso
if ($view_list == 2) {
print "
Risultati della ricerca
Denominazione corso :
" . $a_rec_corso[att_denom] . " ";
//-------------------------------------------------------------------------------------------
print "
Ente :
" . $a_rec_ente['ente_denom'] . "
". $a_rec_ente['ente_ind'] . "
";
print $a_rec_ente['ente_cap'] . " - " . $a_rec_ente['ente_comune'] . " - " . $a_rec_ente['ente_prv'] ;
//-----------------------------------------------------------------------------------------------------------
print "
tel: " . $a_rec_ente['ente_tel'] . " - fax: " . $a_rec_ente['ente_fax'] . "
e-mail: " . $a_rec_ente['ente_email'] ."- sito:". $a_rec_ente['ente_sito'] ."
Sede del corso:
" . $a_rec_corso['att_sede'] . "
Durata:
";
//---------------------------------------------------------------------------------------------------------------
print "
". $a_rec_corso['att_durata'] ."
Giorni e orari:
" . $a_rec_corso['att_gg_ora'];
//------------------------------------------------------------------------------------------------------------
print "
Inizio del corso :
" . $a_rec_corso['att_inizio'] . "
Costo previsto :
" . $a_rec_corso['att_costo'] ;
print "
Iscrizione :
" . $a_rec_corso['att_iscrizione'] . "
Descrizione :
" . $a_rec_corso['att_descrizione'];
print "
data di compilazione :
" . $a_rec_corso['att_data_comp'] ;
print "
Destinatari :
" . $a_rec_corso['rif_dest'];
print "
Attestati rilasciati :
" . $a_rec_corso['rif_attesta'];
print"
Requisiti :
" . $a_rec_corso['rif_tit_stud'];
print "
Finanziamento :
" . $a_rec_corso['att_finaz'];
print "
";
print " ";
// -----------------------------------------------------------------------------------------------------------
$view_list=1 ;
}
print " ";
- protempore
- Power Poster
- Posts: 599
- Joined: Mon Jan 14, 2008 9:08 pm
Re: cicli di fom dati
ah... io ho detto niente...ramesse wrote: ti rilascio il codice cosi' mi dici...

bello... e funziona?
An eye for an eye will make the whole world blind
Mahatma Gandhi (1869-1948)
Mahatma Gandhi (1869-1948)
Re: cicli di fom dati
Si funziona tutto.
Grazie cmq per le tue istruzioni che mi hanno permesso di capire il funzionamento di Smarty
Saluti
Ramesse
Grazie cmq per le tue istruzioni che mi hanno permesso di capire il funzionamento di Smarty
Saluti
Ramesse