Page 1 of 1
cicli di fom dati
Posted: Thu Jun 17, 2010 9:16 am
by ramesse
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
Re: cicli di fom dati
Posted: Thu Jun 17, 2010 10:09 am
by protempore
devi recuperare i valori "get" o "post" del form attivato dalle select...
con la variabile $smarty.get.nomevariabile oppure $smarty.post.nomevariabile
Re: cicli di fom dati
Posted: Thu Jun 17, 2010 11:14 am
by ramesse
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
Re: cicli di fom dati
Posted: Thu Jun 17, 2010 11:12 pm
by protempore
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:
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>
";
creo udt_select2
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'];
}
il template, grosso modo dovrebbe essere così...
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}
non funzionerà un tubo, ma è solo per dare l'idea...

Re: cicli di fom dati
Posted: Fri Jun 18, 2010 7:20 am
by ramesse
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.
Re: cicli di fom dati
Posted: Fri Jun 18, 2010 7:27 am
by protempore
ramesse wrote:
sei stato molto gentile ma sono riuscito a risolvere il problema su una sola UDT
...
condividere?

Re: cicli di fom dati
Posted: Fri Jun 18, 2010 12:06 pm
by ramesse
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 " ";
Re: cicli di fom dati
Posted: Sat Jun 19, 2010 8:22 am
by protempore
ramesse wrote:
ti rilascio il codice cosi' mi dici...
ah... io ho detto niente...
bello... e funziona?
Re: cicli di fom dati
Posted: Tue Jun 22, 2010 8:29 am
by ramesse
Si funziona tutto.
Grazie cmq per le tue istruzioni che mi hanno permesso di capire il funzionamento di Smarty
Saluti
Ramesse