Joomla.it Forum

Componenti per Joomla! => Gestione Form => : pieroso 28 Apr 2012, 15:16:01

: [RISOLTO]redirect a form che riceve variabile con utente loggato e stampa da db
: pieroso 28 Apr 2012, 15:16:01
Salve, nel mio sito ho un redirec che da un componente indirizza ad un form di chronoform;
ho la necessità che il form recuperi da una tabella già esistente
l'ultimo record che l'utente loggato ha inserito con il componente joomla.
Premettendo che non so programmare in php, per fare ciò, ho pensato di creare un "form1" e mettere nel "Custom code" il codice della "Guida2" di Vales,
che linka, inviadogli il valore di una variabile, a "form2" che visualizza con DB Record Loader i campi del record richiesto.
Il codice per intero è questo:
:
<?php
$bb
=$form->data['elenco'];
foreach (
$bb as $a) {
echo 
"<tr><td>".$a['cf_id']."</td><td><a class=\"order_link\" 
href=\"index.php?option=com_chronoforms&chronoform=provaemail3&rec="
.$a['cf_id']."\">".$a['nome']."[/url]
</td><td>"
.$a['email']."</td><td>".$a['allegato']."</td></tr>";
}
?>

ma, per la mia necessità, devo modificarlo in modo che sia solo un link a "form2"
e che invii una variabile con il nome dell'utente loggato, quindi ho pensato di fare così:
:
<?php
$user 
=& JFactory::getUser();
$usernome=$user->username;
href=\"index.php?option=com_chronoforms&chronoform=form2&rec=".$usernome['referreid']
?>
dove "referreid" è il nome del campo utente della tabella dove reperire il record da visualizzre.
Ma, ottengo: (syntax error, unexpected '=')
Infine, per visualizzare l'ultimo record inserito dall'utente, ho pensato di ordinare i records in modo
decrescente in una query inserendo qualcosa tipo: "ORDER BY `id` DESC ", ma non sò bene come fare.
Qualcuno mi può aiutare?
Credo che potrebbe essere utile anche ad altri no?
Ciao e grazie anticipatamente.
Piero.
 
: Re:redirect a form che riceve variabile con utente loggato e stampa un campo da db
: vales 29 Apr 2012, 18:10:00
Il problema è che hai inserito del codice che in php con viene riconosciuto.

href ... ecc nel codice precedente era una parte di una costante stringa che conteneva un tag html construito anche con l'aiuto di php.

$usernome non è un array ma una semplice variabile.
: Re:redirect a form che riceve variabile con utente loggato e stampa un campo da db
: pieroso 29 Apr 2012, 22:55:07
Grazie per l'attenzione ma, anche se ho tutte le intenzioni di imparare tutto ciò che mi serve, non sò quando sarò in grado di fare da solo.
Ho capito l'errore ma, potresti aiutarmi un pò di più? Magari delineandomi un pò la strada?
Ciao.
Piero.
: Re:redirect a form che riceve variabile con utente loggato e stampa un campo da db
: vales 30 Apr 2012, 20:05:29
Credo dovresti impostare la query per la ricerca selezionando il valore dell'utente loggato ed ordinado sul campo chiave in modo decrescente.

Come metodo di lettura della query dovresti usare LoadRow al posto di loadAssocList, perchè il primo rende solo l'ultima riga che è quella che vuoi.

Poi linki al form per vedere i dati passando nell'url il campo chiave primaria.
: Re:redirect a form che riceve variabile con utente loggato e stampa un campo da db
: pieroso 01 May 2012, 00:09:36
Grazie ancora per la risposta.
Sono riuscito a scrivere questo codice nel "custom code" del form1, con il link al form "vistapuntiutente" che passa la chiave primaria "id".
<?php
$user =& JFactory::getUser();
// interrogare il DB:
$db =& JFactory::getDBO();
$query = "SELECT * FROM jos_alpha_userpoints_details `ORDER BY `id` DESC WHERE referreid='".$user->username."'";
$db->setQuery($query);
$row = $db->loadAssoc();
$utente=$row['referreid'];
$importo=$row['points'];
$id=$row['id'];
?>
<a href="index.php?option=com_chronoforms&chronoform=vistapuntiutente&punti=<?php echo $id['id']; ?>
Ma, anche se non ricevo errori, provandolo non passa al form "vistapuntiutente" e sembra non funzionare.
Ciao.
Piero.
: Re:redirect a form che riceve variabile con utente loggato e stampa un campo da db
: vales 01 May 2012, 01:02:21
Prova.

:
<?php
$user 
=& JFactory::getUser();
// interrogare il DB:
$db =& JFactory::getDBO();
$query "SELECT * FROM jos_alpha_userpoints_details ` WHERE referreid='".$user->username."' ORDER BY `id` DESC";
$db->setQuery($query);
$row $db->loadAssoc();
$utente=$row['referreid'];
$importo=$row['points'];
$id=$row['id'];
?>


<a href="index.php?option=com_chronoforms&chronoform=vistapuntiutente&punti=<?php echo $id?>" >vistautente</a>

: Re:redirect a form che riceve variabile con utente loggato e stampa un campo da db
: pieroso 01 May 2012, 23:46:17
Alla prova, ha funzionato il link al form "vistapuntiutente" che però si è aperto senza recuperare dati, come se non avesse ricevuto il parametro "id" che, provando ad aggiungerne il valore direttamente all'url fa funzionare il form che recupera i dati.
Grazie sempre.
Ciao.
Piero.

: Re:redirect a form che riceve variabile con utente loggato e stampa un campo da db
: vales 01 May 2012, 23:54:36
Per popolare il valore id l'utente deve essere loggato in Joomla altrimenti id non esiste.

Inoltre la tabella in database dei dati del form dovrebbe avere come chiave principale il valore id.
: Re:redirect a form che riceve variabile con utente loggato e stampa un campo da db
: pieroso 02 May 2012, 01:07:17
Vales, sicuro che il codice da te corretto fosse esatto, dopo varie prove ho visto che levando la "WHERE" tutto funzionava. Penso di avere individuato il problema nella differenza tra il nome utente di joomla e il referreid della tabella esaminata in quanto, in esso il componente "Alphauserpoints" aggiunge un prefisso.
Ho provato a levare il prefisso modificando  direttamente DB ed a riprovare, ma niente da fare, quindi sto cercando la soluzione.
Comunque grazie molto per l'aiuto sei UNICO.
Ciao.
Piero.
: Re:redirect a form che riceve variabile con utente loggato e stampa un campo da db
: vales 02 May 2012, 16:44:49
Il problema è che non conosco il tracciato delle tabelle che stai usando.
: Re:redirect a form che riceve variabile con utente loggato e stampa un campo da db
: pieroso 02 May 2012, 23:54:27
Ciao vales, questo è un record della tabella interessata:
 
Field title
Field value
id332
referreidAUPRR-STUDIO LEGALE
points-5
insert_date2012-04-04 10:02:38
expire_date0000-00-00 00:00:00
status1
rule13
approved1
keyreference
datareferenceLirex comprati a AUPRR-IL TELEFONINO (Il telefonino)
 
 
Come dicevo ho provato a levare il prefisso"AUPRR-" dal campo "referreid", ma niente, il form non funziona.
Ciao.
Piero.
 
: Re:redirect a form che riceve variabile con utente loggato e stampa un campo da db
: pieroso 12 May 2012, 11:40:17
Finalmente ho risolto con la query così:
$query = "SELECT * FROM jos_alpha_userpoints_details WHERE referreid LIKE'%".$user->username."' ORDER BY `id` DESC";$db->setQuery($query);
: Re:installazione Chronoconnectivity non funziona
: Aidi 01 Mar 2013, 15:25:39
Ciao a tutti, ho dei problemi da rislvere a breve. Non so molto di joomla e devo realizzare delle form:
una che inserisce dati in una tabella, uno che recupera un record specifico con un parametro inserito nella form, e uno per effettuare un incremento di un valore (update) tramite sempre form.

Io ho installato Chronoform e ho creato la tabella e il form per l'inserimento dei dati, ma già qui il primo problema se cambio la chiave primaria la insert non funziona +.

Inoltre devo modificare questa form in modo tale che se la username inserita nella form è presente nella tabella degli utenti, allora viene inserito il record nella tabella che ho creato.

Ora volevo capire come fare per realizzare la form che dato una stringa mi ritorna un campo del record che ha come chiave primaria tale stringa.
Volevo capire come interviene chronoengine.
L'ho installato ma non funziona la pagine è vuota, mi sapete aiutare per favore?