Joomla.it Forum
Componenti per Joomla! => Gestione Form => : dmiao83 14 Jan 2015, 17:06:16
-
Buona sera, con l'aiuto di alcuni topic di questo forum e con il forum ufficiale di chronoengine.... sono riuscito a realizzare i miei form... ora vorrei poter modificare i valori dei record di una tabella. Tramite ccV5 visualizzo i valori dei record; aggiunto la voce edit ad ogni riga della tabella con action edit= nome_form:load. Premendo su edit viene caricato il form per la modifica ma, senza valori. Come faccio a caricare i valori preesistenti???
Premendo su edit ho il seguente url :
http://192.168.1.15/vep/index.php/component/chronoconnectivity5/?cont=lists&ccname=nome_form&act=edit&gcb=1
Se non ho capito male il valore di gcb è il valore che mi servirebbe per popolare il form (in poche parole è l'id della row.... Sfortunatamente non mi viene in mente come fare ad ottenerlo.... come faccio? :P
Grazie
dmiao83
-
Missione compiuta....
Basta fare una select come questa:
<?php
$query = "SELECT * FROM #__a WHERE id='".$form->data("gcb")."'";
$db =& JFactory::getDBO();
$db->setQuery($query);
$row = $db->loadAssoc();
$form->data['nome'] = $row['nome'];
$form->data['indirizzo'] = $row['indirizzo'];
$form->data['citta'] = $row['citta'];
$form->data['cap'] = $row['cap'];
$form->data['email'] = $row['email'];
$form->data['pec'] = $row['pec'];
$form->data['tel'] = $row['tel'];
?>
Saluti
dmiao83
-
non è necessario tutto quel codice.
in chronoconnetivity configuri il campo su cui fare il link come vista o edit. In View linkable o Edit linkable. Poi in action in View o Edit configuri il nome del form da utilizzare.
Nel form in DB read configuri la condition per filtrare il record del form così
<?php return array('model.id' => $form->data['gcb']); ?>
-
non è necessario tutto quel codice.
in chronoconnetivity configuri il campo su cui fare il link come vista o edit. In View linkable o Edit linkable. Poi in action in View o Edit configuri il nome del form da utilizzare.
Nel form in DB read configuri la condition per filtrare il record del form così
<?php return array('model.id' => $form->data['gcb']); ?>
In CC configuro tutto tramite edit, infatti ho inserito _EDIT_:Edit come ultima voce in Columns list
In Actions-> edit ho inserito in form event form_name:load
All'inizio avevo provato proprio con il codice php da te scritto ma, il DB read non mi carica i valori trovati nei textbox. Sicuramente c'è una soluzione immediata ma con il bel vecchio codice tutto funziona. Se eventualmente sai come popolare i textbox con il DB read... modifico tutto :P
Grazie
dmiao83
-
come hai inserito i nomi dei campi del form ?
Dovrebbero essere model[nomecampo] se usi il model
-
come hai concluso ?
A me viene il campo cliccabile MA quando provo ad editare mi restituisce un errore 1054 :
il tutto è visibile su italpascal.it/nuovocf5
1054 Unknown column 'model.id' in 'where clause' SQL=SELECT `Data`.`id` AS `Data.id`, `Data`.`uniq_id` AS `Data.uniq_id`, `Data`.`user_id` AS `Data.user_id`, `Data`.`created` AS `Data.created`, `Data`.`modified` AS `Data.modified`, `Data`.`nome` AS `Data.nome`, `Data`.`timbro` AS `Data.timbro`, `Data`.`iscalbo` AS `Data.iscalbo`, `Data`.`luogon` AS `Data.luogon`, `Data`.`datan` AS `Data.datan`, `Data`.`codfis` AS `Data.codfis`, `Data`.`mf` AS `Data.mf`, `Data`.`res` AS `Data.res`, `Data`.`email` AS `Data.email`, `Data`.`tel` AS `Data.tel`, `Data`.`corsol` AS `Data.corsol`, `Data`.`sez` AS `Data.sez`, `Data`.`alboex` AS `Data.alboex`, `Data`.`primaisc` AS `Data.primaisc`, `Data`.`invia` AS `Data.invia` FROM `vkhdp_chronoengine_chronoforms_data_Ass` AS `Data` WHERE `model`.`id`
Forse sbaglio nella configurazione del form ? ( vedi image )
[allegato eliminato automaticamente dopo un anno]
-
da quello che vedo stai usando un model di nome "Data" quindi nel codice che ti ho inviato devi sostituire il tuo model con quello che avevo per esempio inserito. Cioè
<?php return array('Data.id' => $form->data['gcb']); ?>
-
Ok, ho modificato la riga.
Adesso mi carica il form ma senza i dati del record che ho cliccato e mi torna questo messaggio :
Notice: Undefined index: italpascal_nuovocf5 in /nome completo del mio host/nuovocf5/administrator/components/com_chronoforms5/chronoforms/actions/db_read/db_read.php(67) : eval()'d code on line 1
Sono andato a leggere il file db_read.php e trovo questo :
66 $find_params = array();
67 $conditions = eval('?>'.$config->get('conditions', ''));
68 $model_class::getInstance()->conditions = is_array($conditions) ? $conditions : array();
penso che in riga 67 trova il codice messo in "Conditions" nel DBRead del form :
<?php return array('Data.id' => $form->data['nomedb_nuovocf5']); ?>
nomedb_nuovocf5 è il database che ho usato quando ho installato joomla, è qui l'errore ?
ps: mi hai inviato del codice ???
-
il codice inviato era riferito a quello qui nella discussione.
qui
<?php return array('Data.id' => $form->data['nomedb_nuovocf5']); ?>
devi mettere gcb come avevi gia detto sopra non il nome del db. Dovrebbe essere così se non hai modificato altre cose.
<?php return array('Data.id' => $form->data['gcb']); ?>
-
Scusa Vales se mi sono inserito in questa discussione.
Ne apro una nuova riportando il messaggio che ho scritto.
-
ma poi questa discussione è stata risolta? Pure io sono bloccato, vedo il form ma i dati da modificare sono vuoti.
Non riesco a farli venire fuori, ho provato di tutto...
Sono 3 giorni che giro questa sezione del forum leggendo di tutto e anche il contrario: ci vorrebbe forse un bell'esempio completo di backup o tutorial. Se riesco lo faccio!