Joomla.it Forum

Componenti per Joomla! => Gestione Form => : RobP 11 Mar 2010, 15:51:15

: [chronoform + funz php] visualizzare l'id del form dopo averlo compilato
: RobP 11 Mar 2010, 15:51:15
Ciao, vi spiego il problema:

l'utente compila il form (anonimo), clicca su invia e viene indirizzato ad una pagina di conferma(fin qui nessun problema), però in questa pagina io vorrei visualizzare anche il numero del suo form. Ad esmepio "quiz numero 5" se l'utente che ha appena compilato il form è il 5°.

Sò che bisogna utilizzare una funzione php che seleziona la tabella di mysql estraendo l'id però non sò come scriverla. Qualcuno può aiutarmi?

Grazieee
: Re:[chronoform + funz php] visualizzare l'id del form dopo averlo compilato
: RobP 11 Mar 2010, 17:51:05
avrei trovato una soluzione, non funziona ancora ma credo di essere sulla buona strada.

Il codice php che ho creato è questo:

<?php
/* dichiariamo alcune importanti variabili per collegarci al database */
$DBhost = "nome host";
$DBuser = "user";
$DBpass = "pwd";
$DBName = "nome database";

/* specifichiamo il nome della nostra tabella */
$table = "nome_tabella_mysql";

/* Connettiamoci al database */
mysql_connect($DBhost,$DBuser,$DBpass) or die("Impossibile collegarsi al server");
@mysql_select_db("$DBName") or die("Impossibile connettersi al database $DBName");

/* stampiamo l'id delll'ultimo record inserito*/
 printf ("L'ultimo recod inserito ha l'identificativo %d\n", mysql_insert_id());
  ?>


Sicuramente c'è qualcosa di sbagliato perchè il risultato è sempre 0. Qualcuno mi sa aiutare?

 

: Re:[chronoform + funz php] visualizzare l'id del form dopo averlo compilato
: vales 11 Mar 2010, 20:08:48
Ciao RobP,

in Joomla non si usa quel sistema perchè ci sono già disponibili delle funzionalità chiamate API che semplificano il lavoro. Vedi nella sezione sviluppo del forum vi sono segnalati anche manuali per studiare il tutto.

Nel tuo caso dovresti sviluppare un codice simile a questo:

:
<?php
$user 
=& JFactory::getUser();
$db =& JFactory::getDBO();  
// conteggio del prossimo atto
$query "SELECT count(*)  FROM `#__tua_tabella` where `cf_id` = '".$user->id."'";
$db->setQuery($query);
$nomes $db->loadResultArray();
$numero=$nomes+1;

?>

$user è l'array che contiene le informazioni dell'utente loggato che invia il form.

Ovviamente devi adattare il tutto alla tua situazione quello sopra è uno spunto.

il seguente è un altro esempio di recupero di altri dati dell'utente.

:
$user =& JFactory::getUser();
 
  echo 'User name: ' . $user->username . '[br /]';
  echo 'Real name: ' . $user->name . '[br /]';
  echo 'User ID  : ' . $user->id . '[br /]';
  echo 'User mail: ' . $user-<mail.'[br /]';
}
: Re:[chronoform + funz php] visualizzare l'id del form dopo averlo compilato
: RobP 11 Mar 2010, 20:20:06
Ah ok, ma nel mio caso l'utente non è loggato, può compilare il form chiunque, è una specie di questionario. A ME interessa solamente visualizzare a video, dopo l'invio del form, il numero del record.
: Re:[chronoform + funz php] visualizzare l'id del form dopo averlo compilato
: RobP 11 Mar 2010, 20:58:21
mi dà questo errore:
"Fatal error: Unsupported operand types in /home/....jumi_includes/estrarre_id.php on line 12"

in estrarre_id.php ho messo il codice che mi hai dato tu e la linea 12 è "$numero=$nomes+1;".

Non capisco
: Re:[chronoform + funz php] visualizzare l'id del form dopo averlo compilato
: RobP 12 Mar 2010, 08:07:27
Aiuto Vales :'(, devo riuscire visualizzare quuel valore dopo che l'utente ha inviato il form, ma proprio non ci riesco. Dove dovrei inserirlo quel codice?
Se puoi aiutarmi ancora ti ringraziooo tantissimo... ;)
: Re:[chronoform + funz php] visualizzare l'id del form dopo averlo compilato
: RobP 12 Mar 2010, 08:31:41
ok ora ho corretto così:

<?php
$user =& JFactory::getUser();
$db =& JFactory::getDBO(); 
// conteggio del prossimo atto
$query = "SELECT count(*)  FROM `#_jos_chronoforms_promozione_inizio_cliente` WHERE `cf_id` = ".$user->id."";
$db->setQuery($query);
$nomes = $db->loadRow();
$numero = $nomes+1;
print_r($numero);

?>

...però mi stampa a video "1", quindi credo che non legge le righe del database. Aiuto! :-\

Praticamente a me servirebbe solo il numero riferito a quel form, dell'utente non mi interessa perchè il form lo potrà compilare chiunque.
: Re:[chronoform + funz php] visualizzare l'id del form dopo averlo compilato
: RobP 12 Mar 2010, 09:46:35
Ho letto che con JTable c'è una funzione che permette di leggere l'ultimo id dell'ultimo record inserito. M anacora non riesco. So disperatooo >:(
: Re:[chronoform + funz php] visualizzare l'id del form dopo averlo compilato
: vales 12 Mar 2010, 10:31:15
:
<?php

$db 
=& JFactory::getDBO();  
// conteggio del prossimo record
$query " SELECT `cf_id`  FROM `#__tua_tabella`";
$db->setQuery($query);
$nomes $db->loadRow();
$numero=$nomes[0]+1;

?>

Dovrebbe funzionare così. Togliendo i riferimenti all'user che non servono.
: Re:[chronoform + funz php] visualizzare l'id del form dopo averlo compilato
: RobP 12 Mar 2010, 11:25:12
Ho aggiunto in fondo print_r($numero); per visualizzare il numero del form dopo l'invio dello stesso. Ma ancora mi torna 1.

Sto impazzendo, anche perchè immagino sia una stupidata.
: Re:[chronoform + funz php] visualizzare l'id del form dopo averlo compilato
: vales 12 Mar 2010, 11:32:52
sei sicuro che quella tabella contiene già record ?
: Re:[chronoform + funz php] visualizzare l'id del form dopo averlo compilato
: RobP 12 Mar 2010, 11:34:42
Si si ho provato anche con altre tabelle e ho provato anche a compilare al momento un form, fare invia e vedere se nella pagina successiva mi visualizzava il num del record. Però il risultato è sempre 1
: Re:[chronoform + funz php] visualizzare l'id del form dopo averlo compilato
: vales 12 Mar 2010, 11:38:20
Mi sono dimenticato che i record vanno ordinati in modo decrescente altrimenti torna sempre il primo record. Cos' invece viene l'ultimo.

:
<?php

$db 
=& JFactory::getDBO();  
// conteggio del prossimo record
$query " SELECT `cf_id`  FROM `#__tua_tabella `ORDER BY `cf_id` DESC ";
$db->setQuery($query);
$nomes $db->loadRow();
$numero=$nomes[0]+1;

?>
: Re:[chronoform + funz php] visualizzare l'id del form dopo averlo compilato
: RobP 12 Mar 2010, 11:51:42
NIENTE ANCORA "1".... :'( :'( :'( :'(
: Re:[chronoform + funz php] visualizzare l'id del form dopo averlo compilato
: RobP 12 Mar 2010, 15:41:18
Aiutoooo, ancora 1. Non riesco a risolvere. Chiedo ancora aiuto. :-\ :-\ :-\
: Re:[chronoform + funz php] visualizzare l'id del form dopo averlo compilato
: vales 12 Mar 2010, 15:46:01
Uso quella funzione in Albo Pretorio On Line e funziona perfettamente consentendo di visualizzare il numero dell'inserimento in corso.

Non riesco a capire il problema.

Puoi postare il codice che usi in HTML code del form ?
: Re:[chronoform + funz php] visualizzare l'id del form dopo averlo compilato
: RobP 12 Mar 2010, 15:57:47
ma a dire il vero io quel codice php lo inserisco in una cartella di jumi tramite ftp, e poi lo richiamo all'interno dell'articolo che compare dopo aver inviato il form con
"{jumi [jumi_includesf/estrarre_id.php]}".

estrarre_id.php:
<?php

$db =& JFactory::getDBO(); 
// conteggio del prossimo record
$query = " SELECT `cf_id`  FROM `#_jos_chronoforms_regalo_comple` ORDER BY `cf_id` DESC ";
$db->setQuery($query);
$nomes = $db->loadRow();
$numero=$nomes[0]+1;
print_r($numero);

?>


Forse è questo che sbaglio. Il codice html code è creato automaticamente dato che i form li faccio con il wizard. In html code non ho aggiunto altro
: Re:[chronoform + funz php] visualizzare l'id del form dopo averlo compilato
: vales 12 Mar 2010, 21:15:21
No il codice per chronoform va inserito nel form ci sono campi a questo dedicati.
Il principale è Html code che contiene il codice del form creato dal wizard in cui si possono inserire le modifiche e gli script per rendere il form dinamico.
: Re:[chronoform + funz php] visualizzare l'id del form dopo averlo compilato
: RobP 13 Mar 2010, 10:13:16
l'ho inserito nel form code ma ancora mi risulta 1, e poi lo visualizza sopra il form, invece a me interesserebbe che quel numero venga visualizzato sulla pagina succesiva, cioè quello che l'utente stamperà e consegnerà.

: Re:[chronoform + funz php] visualizzare l'id del form dopo averlo compilato
: llorenzini 26 Jan 2012, 11:48:43
ciao
ho lo stesso problema...o meglio vi spiego ho creato un form

nome "inserito da utenet"
cognome "inserito da utenet"
indirizzo "inserito da utenet"
valore: che mi da il form in automatico...non modificabile dall'utente ....


valore vorrei fosse come una chiave identificativa di quel record salvandomela nel db e visualizzandola all'utente quando mi conferma l'invio..tipo valore: xxxxx cosi lo si puo usare come identificatico per pescare l'utente al volo....come posso fare?

grazie
: Re:[chronoform + funz php] visualizzare l'id del form dopo averlo compilato
: vales 26 Jan 2012, 20:04:11
Dovresti specificare quale tipo di versione ci chronofrms stai usando. Questo post vecchio di quasi due anni si riferisce alla v3.

Comunque entrambe le versioni memorizzano nella tabella, per default ,una serie di campi che identificano univocamente il record

cf_id chiave numerica della tabella autoincrementante
cf_uid codice alfanumerico univoco per ogni record
cf_user_id numero dell'utente che ha compilato il form

ed altri campi utili.

Puoi ritrovare tutti questi valori nel messaggio di ringraziamento dopo la compilazione usando {nome_campo}.
: Re:[chronoform + funz php] visualizzare l'id del form dopo averlo compilato
: llorenzini 27 Jan 2012, 08:09:59
ciao sto utilizzando la versione per joomla 1.7

no....ho provato...ma dopo l'invio mi scrive cosi

"Cordiali saluti
 
codice identificativo: {cf_id}"


non so....che fare...

: Re:[chronoform + funz php] visualizzare l'id del form dopo averlo compilato
: vales 14 May 2012, 18:31:37
Prova con php

:
<?php
echo $form->data['cf_id'];
?>

: Re:[chronoform + funz php] visualizzare l'id del form dopo averlo compilato
: llorenzini 19 Jun 2012, 17:11:47
ciao
scusami ma non ho capito ne dove metterlo ne che boss utilizzare per il codice...
grazie...
: Re:[chronoform + funz php] visualizzare l'id del form dopo averlo compilato
: vales 24 Jun 2012, 19:54:08
Nel campo in cui definisci i ringraziamenti.
: Re:[chronoform + funz php] visualizzare l'id del form dopo averlo compilato
: llorenzini 25 Jun 2012, 08:57:14
posso decidere io che questo valore non parta da 0 o 1 ma da 1000 per esempio?
: Re:[chronoform + funz php] visualizzare l'id del form dopo averlo compilato
: llorenzini 25 Jun 2012, 09:01:50
se metto quel codice nei ringraziamenti mi scrive cosi:



Grazie per avere inviatoi tuoi dati.

 
data['cf_id']; ?>
: Re:[chronoform + funz php] visualizzare l'id del form dopo averlo compilato
: vales 29 Aug 2012, 12:16:46
Allora ho verificato che nell'action Show Thanks Message non accetta php.

Quindi dopo l'action db save va inserita un'action Custom code dove possono essere inseriti php ed html.

In quel modo funziona.

Devi stare attento se in db save hai usato  Model id, perchè in quel caso il recupero del numero del record registrato avviene con $form->data['nome_model_id_cf_id']

ne non hai usato il campo Model id in db save invece recuperi il valore con $form->data['chronoform_data_cf_id']