Back to top

Autore Topic: [RISOLTO]redirect a form che riceve variabile con utente loggato e stampa da db  (Letto 6300 volte)

Offline pieroso

  • Esploratore
  • **
  • Post: 57
    • Mostra profilo
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:
Codice: [Seleziona]
<?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ì:
Codice: [Seleziona]
<?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.
 
« Ultima modifica: 12 Mag 2012, 11:42:49 da pieroso »

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
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.
Download e demo di Albo Pretorio On Line per Joomla 1.5 e Joomla 2.5 e 3
Moduli scuola On Line v1 per Joomla 3
http://valesweb.altervista.org

Offline pieroso

  • Esploratore
  • **
  • Post: 57
    • Mostra profilo
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.

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
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.
Download e demo di Albo Pretorio On Line per Joomla 1.5 e Joomla 2.5 e 3
Moduli scuola On Line v1 per Joomla 3
http://valesweb.altervista.org

Offline pieroso

  • Esploratore
  • **
  • Post: 57
    • Mostra profilo
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.

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Prova.

Codice: [Seleziona]
<?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>

« Ultima modifica: 01 Mag 2012, 01:06:30 da vales »
Download e demo di Albo Pretorio On Line per Joomla 1.5 e Joomla 2.5 e 3
Moduli scuola On Line v1 per Joomla 3
http://valesweb.altervista.org

Offline pieroso

  • Esploratore
  • **
  • Post: 57
    • Mostra profilo
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.


Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
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.
« Ultima modifica: 01 Mag 2012, 23:56:28 da vales »
Download e demo di Albo Pretorio On Line per Joomla 1.5 e Joomla 2.5 e 3
Moduli scuola On Line v1 per Joomla 3
http://valesweb.altervista.org

Offline pieroso

  • Esploratore
  • **
  • Post: 57
    • Mostra profilo
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.

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Il problema è che non conosco il tracciato delle tabelle che stai usando.
Download e demo di Albo Pretorio On Line per Joomla 1.5 e Joomla 2.5 e 3
Moduli scuola On Line v1 per Joomla 3
http://valesweb.altervista.org

Offline pieroso

  • Esploratore
  • **
  • Post: 57
    • Mostra profilo
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.
 

Offline pieroso

  • Esploratore
  • **
  • Post: 57
    • Mostra profilo
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);

Aidi

  • Visitatore
Re:installazione Chronoconnectivity non funziona
« Risposta #12 il: 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?
« Ultima modifica: 01 Mar 2013, 16:05:05 da Aidi »

 



Web Design Bolzano Kreatif