cicli di fom dati

La discussione sul CMS Made Simple in italiano.

Moderator: magallo

Post Reply
ramesse
Forum Members
Forum Members
Posts: 54
Joined: Mon Oct 20, 2008 3:17 pm

cicli di fom dati

Post 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
User avatar
protempore
Power Poster
Power Poster
Posts: 599
Joined: Mon Jan 14, 2008 9:08 pm

Re: cicli di fom dati

Post by protempore »

devi recuperare i valori "get" o "post" del form attivato dalle select...

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)
ramesse
Forum Members
Forum Members
Posts: 54
Joined: Mon Oct 20, 2008 3:17 pm

Re: cicli di fom dati

Post 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
User avatar
protempore
Power Poster
Power Poster
Posts: 599
Joined: Mon Jan 14, 2008 9:08 pm

Re: cicli di fom dati

Post 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...
:D
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)
ramesse
Forum Members
Forum Members
Posts: 54
Joined: Mon Oct 20, 2008 3:17 pm

Re: cicli di fom dati

Post 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.
User avatar
protempore
Power Poster
Power Poster
Posts: 599
Joined: Mon Jan 14, 2008 9:08 pm

Re: cicli di fom dati

Post by protempore »

ramesse wrote: sei stato molto gentile ma sono riuscito a risolvere il problema su una sola UDT
...
condividere?
;D
An eye for an eye will make the whole world blind
Mahatma Gandhi (1869-1948)
ramesse
Forum Members
Forum Members
Posts: 54
Joined: Mon Oct 20, 2008 3:17 pm

Re: cicli di fom dati

Post 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 " ";
User avatar
protempore
Power Poster
Power Poster
Posts: 599
Joined: Mon Jan 14, 2008 9:08 pm

Re: cicli di fom dati

Post by protempore »

ramesse wrote: ti rilascio il codice cosi' mi dici...
ah... io ho detto niente...  ;D

bello... e funziona?
An eye for an eye will make the whole world blind
Mahatma Gandhi (1869-1948)
ramesse
Forum Members
Forum Members
Posts: 54
Joined: Mon Oct 20, 2008 3:17 pm

Re: cicli di fom dati

Post by ramesse »

Si funziona tutto.
Grazie cmq per le tue istruzioni che mi hanno permesso di capire il funzionamento di Smarty
Saluti
Ramesse
Post Reply

Return to “Italian - Italiano”