Joomla.it Forum
Componenti per Joomla! => Gestione Form => : AsteAle 19 Jul 2010, 12:28:01
-
Salve,
ho elaborato un form multipage sulla scia dell'articolo di vales:
http://www.joomla.it/articoli-della-community/3836-from-multi-page-con-chronoforms-1.html
Nell'esempio illustrato nell'articolo si utilizza l'array php
$posted['nome-campo_form_precedente']
per richiamare il valore di un campo del form precedente nel form successivo.
Io inserisco solo la suddetta istruzione e non mi funziona.
Quindi non riesco a "trascinarmi" dietro i valori dei campi dallo step1 allo step2 etc...
C'è bisogno di un'istruzione "preliminare"?
Vi risulta giusta la sintassi della suddetta istruzione?
Need Help!!!!.......
Thanksss a lot.....
-
ciao. Per capire
hai inserito tutto tutto il comando dal FROM al ]; di posted? ciao.
-
Ciao Andfritz,
non ho ben capito cosa intendi.
Io ho inserito questa riga prima di ogni altra nel Form Code HTML
<input type="hidden" name="nome_2" value="<?php echo $posted['nome_2']; ?>"/>
Cioè mi "trascino" dei campi invisibili (prima del codice del form successivo) il cui valore viene (o dovrebbe essere) richiamato da $posted.
wait you(s)....
-
L'array $posted ti segue nei form successivi comunque.
Non è necessario rivalorizzare tutti i campi ma solo quelli che hanno variazioni con l'elaborazione nei form successivi.
Prova ad attivare il debug del plugin Multi page per controllare i valori passati ai vari step.
-
Posso dire che il problema sta proprio li, cioè non mi passa i valori dei campi da uno step all'altro.
Infatti la sorgente del form successivo:
<input type="hidden" name="nome_2" value=""/>
ha value nullo.
Inserisco il codice dello step3...magari mi aiutate a trovare l'errore...
<div>
<div>
<input type="hidden" name="nome_2" value="<?php echo $posted['nome_2']; ?>"/>
<input type="hidden" name="cognome_3" value="<?php echo $posted['cognome_3']; ?>"/>
<input type="hidden" name="regione_5" value="<?php echo $posted['regione_5']; ?>"/>
<input type="hidden" name="prov_6" value="<?php echo $posted['prov_6']; ?>"/>
<input type="hidden" name="citta_7" value="<?php echo $posted['citta_7']; ?>" />
<input type="hidden" name="tel_9" value="<?php echo $posted['tel_9']; ?>"/>
<input type="hidden" name="cell_10" value="<?php echo $posted['cell_10']; ?>"/>
<input type="hidden" name="email_3" value="<?php echo $posted['email_3']; ?>"/>
<input type="hidden" name="regione_1" value="<?php echo $posted['regione_1']; ?>"/>
<input type="hidden" name="prov_2" value="<?php echo $posted['prov_2']; ?>" />
<input type="hidden" name="comune_3" value="<?php echo $posted['comune_3']; ?>"/>
<input type="hidden" name="indirizzo_5" value="<?php echo $posted['indirizzo_5']; ?>"/>
<input type="hidden" name="civico_6" value="<?php echo $posted['civico_6']; ?>"/>
<input type="hidden" name="tipo_8" value="<?php echo $posted['tipo_8']; ?>" />
<input type="hidden" name="mq_9" value="<?php echo $posted['mq_9']; ?>" />
</div>
</div>
<div class="form_item">
<div class="form_element cf_dropdown">
<label class="cf_label" style="width: 80px;">Origine Debito</label>
<select class="cf_inputbox validate-selection" id="select_5" size="1" title="" name="origine_1">
<option value="">Scegli</option>
<option value="Mutuo fondiario">Mutuo fondiario</option>
<option value="Prestito chirografario">Prestito chirografario</option>
<option value="Umbria">Umbria</option>
<option value="Campania">Campania</option>
</select>
</div>
<div class="cfclear"> </div>
</div>
<div class="form_item">
<div class="form_element cf_textbox">
<label class="cf_label" style="width: 80px;">Creditore</label>
<input class="cf_inputbox required" maxlength="16" size="18" title="" id="text_10" name="creditore_5" type="text" />
<a class="tooltiplink" onclick="return false;"><img height="16" border="0" width="16" class="tooltipimg" alt="" src="components/com_chronocontact/css/images/tooltip.png"/></a>
<div class="tooltipdiv">Creditore :: Nome o Ragione sociale</div>
</div>
<div class="cfclear"> </div>
</div>
<div class="form_item">
<div class="form_element cf_textbox">
<label class="cf_label" style="width: 80px;">Entità del debito</label>
<input class="cf_inputbox required" maxlength="5" size="18" title="" id="text_12" name="entita_6" type="text" />
</div>
<div class="cfclear"> </div>
</div>
<div class="form_item">
<div class="form_element cf_textbox">
<label class="cf_label" style="width: 80px;">Tribunale di</label>
<input class="cf_inputbox required" maxlength="30" size="18" title="" id="text_8" name="trib_8" type="text" />
</div>
<div class="cfclear"> </div>
</div>
<div class="form_item">
<div class="form_element cf_textbox">
<label class="cf_label" style="width: 80px;">Procedura esecutiva N°</label>
<input class="cf_inputbox required" maxlength="16" size="18" title="" id="text_9" name="proced_9" type="text" />
</div>
<div class="cfclear"> </div>
</div>
<div class="form_item">
<div class="form_element cf_textbox">
<label class="cf_label" style="width: 80px;">Anno</label>
<input class="cf_inputbox required validate-number" maxlength="5" size="6" title="" id="text_10" name="anno_10" type="text" />
</div>
<div class="cfclear"> </div>
</div>
<div class="form_item">
<a href="index2.php?option=com_content&view=article&id=53&Itemid=53"
style="text-decoration: none;"><input value="Indietro" type="button"></a>
<div class="form_element cf_button" align="right">
<input value="Procedi" name="button_8" type="submit" />
</div>
<div class="cfclear"> </div>
</div>
e dello step4 (form di riepilogo e invio definitivo)
<div>
<div>
<input type="hidden" name="nome_2" value="<?php echo $posted['nome_2']; ?>"/>
<input type="hidden" name="cognome_3" value="<?php echo $posted['cognome_3']; ?>"/>
<input type="hidden" name="regione_5" value="<?php echo $posted['regione_5']; ?>"/>
<input type="hidden" name="prov_6" value="<?php echo $posted['prov_6']; ?>"/>
<input type="hidden" name="citta_7" value="<?php echo $posted['citta_7']; ?>" />
<input type="hidden" name="tel_9" value="<?php echo $posted['tel_9']; ?>"/>
<input type="hidden" name="cell_10" value="<?php echo $posted['cell_10']; ?>"/>
<input type="hidden" name="email_3" value="<?php echo $posted['email_3']; ?>"/>
<input type="hidden" name="regione_1" value="<?php echo $posted['regione_1']; ?>"/>
<input type="hidden" name="prov_2" value="<?php echo $posted['prov_2']; ?>" />
<input type="hidden" name="comune_3" value="<?php echo $posted['comune_3']; ?>"/>
<input type="hidden" name="indirizzo_5" value="<?php echo $posted['indirizzo_5']; ?>"/>
<input type="hidden" name="civico_6" value="<?php echo $posted['civico_6']; ?>"/>
<input type="hidden" name="tipo_8" value="<?php echo $posted['tipo_8']; ?>" />
<input type="hidden" name="mq_9" value="<?php echo $posted['mq_9']; ?>" />
<input type="hidden" name="origine_1" value="<?php echo $posted['origine_1']; ?>" />
<input type="hidden" name="creditore_5" value="<?php echo $posted['creditore_5']; ?>" />
<input type="hidden" name="entita_6" value="<?php echo $posted['entita_6']; ?>" />
<input type="hidden" name="trib_8" value="<?php echo $posted['trib_8']; ?>" />
<input type="hidden" name="proced_9" value="<?php echo $posted['proced_9']; ?>" />
<input type="hidden" name="anno_10" value="<?php echo $posted['anno_10']; ?>" />
</div>
</div>
<div>
<div>
<h1>Controlla i dati inseriti e conferma</h1>
</div>
<div> </div>
</div>
<div>
<div>
Nome: <?php echo $posted['nome_2']; ?><br/><br/>
Cognome: <?php echo $posted['cognome_3']; ?><br/><br/>
Regione: <?php echo $posted['regione_5']; ?><br/><br/>
Provincia: <?php echo $posted['prov_6']; ?><br/><br/>
Città: <?php echo $posted['citta_7']; ?><br/><br/>
Telefono: <?php echo $posted['tel_9']; ?><br/><br/>
Cellulare: <?php echo $posted['cell_10']; ?><br/><br/>
Email: <?php echo $posted['email_3']; ?><br/><br/>
Regione: <?php echo $posted['regione_1']; ?><br/><br/>
Provincia: <?php echo $posted['prov_2']; ?><br/><br/>
Comune: <?php echo $posted['comune_3']; ?><br/><br/>
Indirizzo: <?php echo $posted['indirizzo_5']; ?><br/><br/>
n°: <?php echo $posted['civico_6']; ?><br/><br/>
Tipo Immobile: <?php echo $posted['tipo_8']; ?><br/><br/>
Mq: <?php echo $posted['mq_9']; ?><br/><br/>
Origine Debito: <?php echo $posted['origine_1']; ?><br/><br/>
Creditore: <?php echo $posted['creditore_5']; ?><br/><br/>
Entità del debito: <?php echo $posted['entita_6']; ?><br/><br/>
Tribunale di: <?php echo $posted['trib_8']; ?><br/><br/>
Procedura esecutiva n°: <?php echo $posted['proced_9']; ?><br/><br/>
Anno: <?php echo $posted['anno_10']; ?><br/><br/>
</div>
<div> </div>
</div>
<div>
<div>
<a href="index2.php?option=com_content&view=article&id=54&Itemid=54"
style="text-decoration: none;"><input value="Indietro" type="button"></a>
<input value="Invia" name="button_9" type="submit" />
</div>
<div> </div>
</div>
<br/><br/>
-
No, non sono necessarie quelle file di assegnazioni a campi hidden quando tutto funziona il multipage, mantiene i valori dell'array $posted in tutti gli step. C'è qualche altro problema.
Controlla meglio, il debug cosa ti dice ?
-
Chiariscimi questo:
1- per me è solo il form madre che è associato al plugin Multipage
2- il form madre è un form completamente vuoto a cui è associata la tabella di db
3- devo attivare il plugin Multipage su tutti gli step?
Il debug non so leggerlo e capirlo, lo posto di seguito:
Informazioni Profilo
Application afterLoad: 0.003 seconds, 0.38 MB
Application afterInitialise: 0.108 seconds, 5.78 MB
Application afterRoute: 0.122 seconds, 6.38 MB
Application afterDispatch: 0.236 seconds, 11.15 MB
Application afterRender: 0.243 seconds, 11.30 MB
Utilizzo Memoria
11972560
15 queries logged
1.
SELECT *
FROM jos_session
WHERE session_id = '3fdb8c5e7925ab35159376987cba2e69'
2.
DELETE
FROM jos_session
WHERE ( time < '1279550945' )
3.
SELECT *
FROM jos_session
WHERE session_id = '3fdb8c5e7925ab35159376987cba2e69'
4.
UPDATE `jos_session`
SET `time`='1279552745',`userid`='0',`usertype`='',`username`='',`gid`='0',`guest`='1',`client_id`='0',`data`='__default|a:9:{s:22:\"session.client.browser\";s:107:\"Mozilla/5.0 (Windows; U; Windows NT 6.0; it; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 ( .NET CLR 3.5.30729)\";s:15:\"session.counter\";i:21;s:8:\"registry\";O:9:\"JRegistry\":3:{s:17:\"_defaultNameSpace\";s:7:\"session\";s:9:\"_registry\";a:1:{s:7:\"session\";a:1:{s:4:\"data\";O:8:\"stdClass\":0:{}}}s:7:\"_errors\";a:0:{}}s:4:\"user\";O:5:\"JUser\":19:{s:2:\"id\";i:0;s:4:\"name\";N;s:8:\"username\";N;s:5:\"email\";N;s:8:\"password\";N;s:14:\"password_clear\";s:0:\"\";s:8:\"usertype\";s:15:\"Public Frontend\";s:5:\"block\";N;s:9:\"sendEmail\";i:0;s:3:\"gid\";i:0;s:12:\"registerDate\";N;s:13:\"lastvisitDate\";N;s:10:\"activation\";N;s:6:\"params\";N;s:3:\"aid\";i:0;s:5:\"guest\";i:1;s:7:\"_params\";O:10:\"JParameter\":7:{s:4:\"_raw\";s:0:\"\";s:4:\"_xml\";N;s:9:\"_elements\";a:0:{}s:12:\"_elementPath\";a:1:{i:0;s:76:\"/var/www/vhosts/golflife.it/httpdocs/libraries/joomla/html/parameter/element\";}s:17:\"_defaultNameSpace\";s:8:\"_default\";s:9:\"_registry\";a:1:{s:8:\"_default\";a:1:{s:4:\"data\";O:8:\"stdClass\":0:{}}}s:7:\"_errors\";a:0:{}}s:9:\"_errorMsg\";N;s:7:\"_errors\";a:0:{}}s:19:\"session.timer.start\";i:1279551329;s:18:\"session.timer.last\";i:1279552731;s:17:\"session.timer.now\";i:1279552745;s:13:\"session.token\";s:32:\"caf727f254a7019831b9ac9cab3e67fb\";s:17:\"application.queue\";a:1:{i:0;a:2:{s:7:\"message\";N;s:4:\"type\";s:7:\"message\";}}}auth|a:11:{s:11:\"show_prices\";i:1;s:7:\"user_id\";i:0;s:8:\"username\";s:4:\"demo\";s:5:\"perms\";s:0:\"\";s:10:\"first_name\";s:5:\"guest\";s:9:\"last_name\";s:0:\"\";s:16:\"shopper_group_id\";s:1:\"5\";s:22:\"shopper_group_discount\";s:4:\"0.00\";s:24:\"show_price_including_tax\";s:1:\"1\";s:21:\"default_shopper_group\";i:1;s:22:\"is_registered_customer\";b:0;}cart|a:1:{s:3:\"idx\";i:0;}recent|a:1:{s:3:\"idx\";i:0;}ps_vendor_id|i:1;minimum_pov|s:4:\"0.00\";vendor_currency|s:3:\"USD\";__eb81adcc4edfeccb1ba0f16dfe1a737f|a:3:{s:19:\"chrono_verification\";s:32:\"4a122edb55960ddacf537e66aebd88c8\";s:22:\"cfreturnurl_form_step2\";s:81:\"http://www.golflife.it/index2.php?option=com_content&view=article&id=53&Itemid=53\";s:22:\"cfreturnurl_form_step3\";s:81:\"http://www.golflife.it/index2.php?option=com_content&view=article&id=54&Itemid=54\";}'
WHERE session_id='3fdb8c5e7925ab35159376987cba2e69'
5.
SELECT *
FROM jos_components
WHERE parent = 0
6.
SELECT folder AS type, element AS name, params
FROM jos_plugins
WHERE published >= 1
AND access <= 0
ORDER BY ordering
7.
SELECT m.*, c.`option` AS component
FROM jos_menu AS m
LEFT JOIN jos_components AS c
ON m.componentid = c.id
WHERE m.published = 1
ORDER BY m.sublevel, m.parent, m.ordering
8.
SELECT template
FROM jos_templates_menu
WHERE client_id = 0
AND (menuid = 0 OR menuid = 57)
ORDER BY menuid DESC
LIMIT 0, 1
9.
SELECT a.*, u.name AS author, u.usertype, cc.title AS category, s.title AS section, CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END AS slug, CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END AS catslug, g.name AS groups, s.published AS sec_pub, cc.published AS cat_pub, s.access AS sec_access, cc.access AS cat_access
FROM jos_content AS a
LEFT JOIN jos_categories AS cc
ON cc.id = a.catid
LEFT JOIN jos_sections AS s
ON s.id = cc.section
AND s.scope = "content"
LEFT JOIN jos_users AS u
ON u.id = a.created_by
LEFT JOIN jos_groups AS g
ON a.access = g.id
WHERE a.id = 57
AND ( ( a.created_by = 0 ) OR ( a.state = 1
AND ( a.publish_up = '0000-00-00 00:00:00' OR a.publish_up <= '2010-07-19 15:19:05' )
AND ( a.publish_down = '0000-00-00 00:00:00' OR a.publish_down >= '2010-07-19 15:19:05' ) ) OR ( a.state = -1 ) )
10.
UPDATE jos_content
SET hits = ( hits + 1 )
WHERE id='57'
11.
SELECT *
FROM `jos_chrono_contact`
WHERE `name` = 'form_step4'
12.
SELECT *
FROM `jos_chrono_contact`
WHERE `id` = '18'
13.
SELECT *
FROM `jos_chrono_contact_plugins`
WHERE `form_id` = '18'
AND event IN ('ONLOAD','ONLOADONSUBMIT')
AND `name` = 'cf_multi_page'
14.
SELECT *
FROM `jos_components`
WHERE `option` = 'com_chronocontact'
AND parent='0'
AND admin_menu_link='option=com_chronocontact'
15.
SELECT a.id, CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END AS slug, CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END AS catslug
FROM jos_content AS a
LEFT JOIN jos_categories AS cc
ON cc.id = a.catid
WHERE a.catid = 0
AND a.state = 1
AND a.access <= 0
AND ( a.state = 1 OR a.state = -1 )
AND ( publish_up = '0000-00-00 00:00:00' OR publish_up <= '2010-07-19 15:19:05' )
AND ( publish_down = '0000-00-00 00:00:00' OR publish_down >= '2010-07-19 15:19:05' )
ORDER BY a.ordering
0 legacy queries logged
File Lingua caricati
* /var/www/vhosts/golflife.it/httpdocs/language/it-IT/it-IT.ini 1
* /var/www/vhosts/golflife.it/httpdocs/language/it-IT/it-IT.plg_system_debug.ini 1
* /var/www/vhosts/golflife.it/httpdocs/language/it-IT/it-IT.com_content.ini 1
* /var/www/vhosts/golflife.it/httpdocs/language/it-IT/it-IT.plg_content_pagebreak.ini 1
* /var/www/vhosts/golflife.it/httpdocs/language/it-IT/it-IT.tpl_ja_purity.ini 1
Stringhe Diagnostica non tradotte
Nessuno
Stringhe Designer non tradotte
Nessuno
thanksss
-
Chiariscimi questo:
1- per me è solo il form madre che è associato al plugin Multipage
2- il form madre è un form completamente vuoto a cui è associata la tabella di db
3- devo attivare il plugin Multipage su tutti gli step?
Il debug non so leggerlo e capirlo, lo posto di seguito:
.........
1) il plugin multipage si associa solo al form madre.
2) deve essere vuoto con le sole tabelle associate.
3) no, solo al form madre.
Quello che hai postato non è il debug del multipage ma quello generale di joomla. Per attivare quello del multipage devi spuntare la casella accanto al nome del form madre poi cliccare sul plugin multipage a sinistra. Nella finestra che si apre vedrai l'opzione per attivare il debug.
Domanda banale ma necessaria. Ma all'interno del form madre hai attivato il plugin interno Multipage dalla finestra plugin, prima di attivare il plugin Multipage dall'esterno come detto sopra?
-
Ok Ok le risposte che mi dai le avevo già rispettate.
Per il form madre Multipage l'ho attivato in entrambi i modi (è importante l'ordine? non credo, spero!io ho attivato prima dall'esterno e poi dall'interno).
Inoltre "Enable steps navigation" deve essere su SI? (immagino di si)
E' questo il debug "giusto"?
$params: JParameter Object ( [_raw] => debugging=0 onsubmit=before_email stepscount= formsnames= stepsnavigation=0 [_xml] => [_elements] => Array ( ) [_elementPath] => Array ( [0] => /var/www/vhosts/golflife.it/httpdocs/libraries/joomla/html/parameter/element ) [_defaultNameSpace] => _default [_registry] => Array ( [_default] => Array ( [data] => stdClass Object ( [debugging] => 1 [onsubmit] => before_email [stepscount] => 4 [formsnames] => form_step1,form_step2,form_step3,form_step4 [stepsnavigation] => 0 [finalbuttonname] => button_9 ) ) ) [_errors] => Array ( ) )
-
Si quello è il reporto del debug ma non vedo i campi.
Prima meglio l'interno.
Prova i rifare l'operazione. Disabilita il plugin interno e salva il form. Poi lo riabiliti e risalvi ed infine riabiliti il plugin esterno.
-
Niente il debug a me sembra sempre lo stesso.
Rispondimi please a questo:
in ogni form non ho inserito alcuna riga php se non
<input type="hidden" name="text_5" value="<?php echo $POSTED['text_5']; ?>"/>
dalllo step 2 allo step 4...
Devo inserire qualche cosa che inizializzi non so che?
Ciao grazie
-
Userei le minuscole per l'array $posted più sicuro.
Prima di usare $posted['text_5'] hai assegnato a quel campo un valore, nei form precedenti. Basta anche
<input type="hidden" name="text_5" value=""/>
-
Ma il valore del campo che richiamo con $posted non deve essere ciò che inserisce l'utente in quel campo nel form precedente?
Dovrei inserire <input type="hidden" name="text_5" value=""/> cioè un campo invisibile con valore nullo?
Credo di aver capito male....
Ti dice qcosa questo warning che mi appare nel pannello Forms Manager?
/var/www/vhosts/golflife.it/httpdocs/administrator/cache/9b8ac9887872716cae1ceea4dea3bd58.spc is not writeable in /var/www/vhosts/golflife.it/httpdocs/libraries/simplepie/simplepie.php on line 1779
grazie 1000
-
Per usare $posted['nome_campo'] occore che in un form precedente sia stato usato e assegnato un valore a quel campo, questo volevo dire.
-
Ciao AsteAle,
gentilmente non utilizzare lo strumento segnalazione per avere risposte ai tuoi post, grazie.
-
Cerco ancora risposta ai miei problemi. Riepilogando:
ho un form costituito da 4 step:
step1-->inserimento dati
step2-->inserimento dati
step3-->inserimento dati
step4-->solo riepilogo dati inseriti in precedenza
Nello step2 devo richiamare i valori dei campi dello step1, GIUSTO?
Dunque per fare ciò nello step2 inserisco tanti campi invisibili quanti sono i campi dello step1 i cui valori sono richiamati da $posted e sono appunto ciò che l'utente ha inserito in precedenza, inserendo tante righe come questa, GIUSTO?
<input type="hidden" name="nome_2" value="<?php echo $posted['nome_2']; ?>"/>
Fin qui tutto bene? Credo/spero di si!
Ma nello step1 quale array/istruzione devo inserire affinchè $posted funzioni.
Credo che il mio problema sia lì....
Grazie se avrete la pazienza....!!!
-
Ciao AsteAle,
hai risolto con i tuoi form? A questo punto credo di si.
Dato che ho lo stesso identico problema. In particolare a me non funziona neanche il tasto per tornare indietro nel form posso avere i tuoi sorgenti per vedere come hai risolto?
Grazie
-
Nello step 1 l'array posted non può funzionare perchè in quel form si inseriscono per la prima volta i valori dei campi.
Posted diventerà valido solo dopo che i campi sono stati inseriti ed inviati al form successivo.