Joomla.it Forum
Componenti per Joomla! => Gestione Form => : oracledba 23 Dec 2013, 23:32:49
-
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
-
$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
-
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
-
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.
-
Ho risolto così.
Funziona alla grande.
Ho cambiato la tabella perchè mi servivano altri dati.
<?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]
-
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