Back to top

Autore Topic: [RISOLTO] Chronoform Inserire dati da un'altra tabella  (Letto 3170 volte)

Offline oracledba

  • Esploratore
  • **
  • Post: 59
    • Mostra profilo
Ciao a tutti.
In parte l'argomento è stato trattato ma negli esempi riportati mancava la descrizione dettagliata della soluzione.
Ho creato un semplice form di prova.
I campi sono
Nome
Cognome
Email

Vorrei che Nome e Cognome venissero inseriti automaticamente nel campo di tipo Text box prelevandoli da una mia tabella di nome anagrafica

Ho provato inserendo il plugin Load user info ma questo componente prende solo i dati preimpostati
  • $form->data['cfu_id']v
  • $form->data['cfu_name']
  • $form->data['cfu_username']
  • $form->data['cfu_email']
  • $form->data['cfu_block']
  • $form->data['cfu_registerDate']
  • $form->data['cfu_lastvisitDate']
  • $form->data['cfu_guest']
  • $form->data['cfu_aid']
ho provato allora ad inserire un campo Custom code ed inserire questo codice PHP preso dal forum


<?php
$user =& JFactory::getUser();
// Se serve interrogare il DB puoi usare (questo è un esempio con una tabella CF):
$db =& JFactory::getDBO();
$query = "SELECT * FROM j17_anagrafica WHERE id='".$user->id."'";
$db->setQuery($query);
$row = $db->loadAssoc();
$nome=$row['nome'];
$cognome=$row['cognome'];
?>

ma come faccio a caricare la variabile $nome nel campo Text box?
Grazie



« Ultima modifica: 27 Dic 2013, 19:58:52 da oracledba »

Offline mmleoni

  • Global Moderator
  • Instancabile
  • ********
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Chronoform Inserire dati da un'altra tabella
« Risposta #1 il: 26 Dic 2013, 10:33:37 »
Codice: [Seleziona]
$form->data['nome'] =  $row['nome'];
$form->data['cognome'] =  $row['cognome'];

ove, ovviamente, 'nome' e 'cognome' sono il name della input di tipo text.

in php 5.3+ gli oggetti sono passati sempre come referenza, quindi usa '=' e non '=&'

ciao,
marco

mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline oracledba

  • Esploratore
  • **
  • Post: 59
    • Mostra profilo
Re:[RISOLTO] Chronoform Inserire dati da un'altra tabella
« Risposta #2 il: 27 Dic 2013, 20:11:26 »
Grazie mmleoni.
Le tue indicazioni sono corrette ed ho già messo RISOLTO nel post.
Non mi funziona però questa riga

$query = "SELECT * FROM j17_anagrafica WHERE id='".$user->id."'";
$db->setQuery($query);
$row = $db->loadAssoc();
$utente=$row['id'];

J17_anagrafica è una mia tabella con un campo id che corrisponde all'id assegnato da joomla in fase di registrazione. All'interno della riga ci sono altre informazioni che mi occorrono nel form.
Riesci a capire perchè non funziona?
Grazie per l'aiuto


Offline mmleoni

  • Global Moderator
  • Instancabile
  • ********
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:[RISOLTO] Chronoform Inserire dati da un'altra tabella
« Risposta #3 il: 27 Dic 2013, 21:10:28 »
difficile a dirsi da qui...

dato per scontato che, come dici tu, #__anagrafica.id sia FK di #__users.id, PK della tabella #__users, ti chiederei: l'utente è loggato quanto tenti il recupero dei dati?

ciao,
marco


ps: verifica le chiavi.
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline oracledba

  • Esploratore
  • **
  • Post: 59
    • Mostra profilo
Re:[RISOLTO] Chronoform Inserire dati da un'altra tabella
« Risposta #4 il: 27 Dic 2013, 21:31:29 »
Ho risolto così.
Funziona alla grande.

Ho cambiato la tabella perchè mi servivano altri dati.

Codice: [Seleziona]
<?php
$user 
=& JFactory::getUser();
$username $user->username;
$email $user->email;
$campo_id $user->id;

$query "SELECT * FROM j17_comprofiler WHERE user_id=$campo_id";

$db =& JFactory::getDBO();
$db->setQuery($query);
$row $db->loadAssoc();
$utente=$row['cf_user_id'];


$form->data['nome'] =  $row['firstname'];
$form->data['cognome'] =  $row['lastname'];
$form->data['email'] =  $email;
$form->data['grado'] =  $row['cb_grado'];

?>

[code]

Resta un problema.
Mi inserisce due record.
[table][tr][td][font=courier][size=2]cf_id [/size][/font][/td][td][font=courier][size=2]cf_uid [/size][/font][/td][td][font=courier][size=2]cf_created [/size][/font][/td][td][font=courier][size=2]cf_modified [/size][/font][/td][td][font=courier][size=2]cf_created_by [/size][/font][/td][td][font=courier][size=2]cf_modified_by [/size][/font][/td][td][font=courier][size=2]cf_ipaddress [/size][/font][/td][td][font=courier][size=2]cf_user_id [/size][/font][/td][td][font=courier][size=2]nome [/size][/font][/td][td][font=courier][size=2]email [/size][/font][/td][td][font=courier][size=2]email1 [/size][/font][/td][td][font=courier][size=2]allegato [/size][/font][/td][td][font=courier][size=2]input_submit_6 [/size][/font][/td][/tr]   [tr][td][right][font=courier][size=2]18[/size][/font][/right][/td] [td][font=courier][size=2]be4c01d905bc242c402bf0608c6a2880[/size][/font][/td] [td][font=courier][size=2]2013-12-27 21:20:46[/size][/font][/td] [td][font=courier][size=2]0000-00-00 00:00:00[/size][/font][/td] [td][right][font=courier][size=2]73[/size][/font][/right][/td] [td][right][font=courier][size=2]0[/size][/font][/right][/td] [td][font=courier][size=2]195.250.210.42[/size][/font][/td] [td][right][font=courier][size=2]73[/size][/font][/right][/td] [td][font=courier][size=2]Marco[/size][/font][/td] [td][font=courier][size=2]xxx@tin.it[/size][/font][/td] [td][font=courier][size=2]xxx@tin.it[/size][/font][/td] [td][/td][td][font=courier][size=2]Submit[/size][/font][/td] [/tr] [tr][td][right][font=courier][size=2]19[/size][/font][/right][/td] [td][font=courier][size=2]7affef61a1cd57ac9c37d8fc017a4976[/size][/font][/td] [td][font=courier][size=2]2013-12-27 21:20:47[/size][/font][/td] [td][font=courier][size=2]0000-00-00 00:00:00[/size][/font][/td] [td][right][font=courier][size=2]73[/size][/font][/right][/td] [td][right][font=courier][size=2]0[/size][/font][/right][/td] [td][font=courier][size=2]195.250.210.42[/size][/font][/td] [td][right][font=courier][size=2]73[/size][/font][/right][/td] [td][/td][td][/td][td][/td][td][/td][td][/td][/tr][/table]
Ho attivato il debug ma non mi fornisce nessuna indicazione.
Inoltre non capisco come togliere il campo "[font=courier][size=2]input_submit_6" che a me non serve.

Grazie per le risposte

[/size][/font]

Offline mmleoni

  • Global Moderator
  • Instancabile
  • ********
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:[RISOLTO] Chronoform Inserire dati da un'altra tabella
« Risposta #5 il: 27 Dic 2013, 21:42:42 »
ti consiglierei di aprire un nuovo topic e di non  andare avanti in uno risolto quando l'argomento cambia.

... ma non è che in tutti gli smanettamenti ti sono finiti dentro due "db save"?  ;D ;D

ciao
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

 



Web Design Bolzano Kreatif