Back to top

Autore Topic: Come posso passare dati tra 2 step form senza inserirli nel db??  (Letto 6739 volte)

Offline chesslore

  • Appassionato
  • ***
  • Post: 297
  • Sesso: Maschio
  • Se sei casalingo ami il fuoco del fornello come me
    • Mostra profilo
Ciao a tutti come posso passare dati tra 2 step form per utilizzarli nella creazione del secondo?

Mi spiego, vorrei che in base al numero di campi indicato nel primo step il secondo form abbia i campi indicati.

$_POST è utilizzabile?

Offline Trok

  • Esploratore
  • **
  • Post: 107
  • www.maw-superaereo.it
    • Mostra profilo
Re:Come posso passare dati tra 2 step form senza inserirli nel db??
« Risposta #1 il: 11 Giu 2010, 11:56:23 »
anche io vorrei realizzare una cosa simile, mi servirebbe un form che inserisce i dati in una pagina di joomla. Praticamente ogni utente dovrebbe inserire delle statistiche che possiede e che automaticamente il form aggiorna nella pagina, ovviamente dovrebbe esserci un blocco in modo tale che gli utenti non inviano più volte le statistiche relative ad una determinata missioen di un torneo.
Stormo virtuale di volo www.maw-superaereo.it

Offline chesslore

  • Appassionato
  • ***
  • Post: 297
  • Sesso: Maschio
  • Se sei casalingo ami il fuoco del fornello come me
    • Mostra profilo
Re:Come posso passare dati tra 2 step form senza inserirli nel db??
« Risposta #2 il: 11 Giu 2010, 14:04:39 »
Io avrei scritto questo per il secondo form può funzionare?

Codice: [Seleziona]
<div class="form_item">
  <div class="form_element cf_heading">
    <h1 class="cf_text">Prenotazione biglietti e abbonamenti</h1>
  </div>
  <div class="cfclear">&nbsp;</div>
</div>

<?php
if (isset($_POST['posted'])){
$abb_multiplo $_POST['Abb_multiplo'];
$corsa_semplice $_POST['corsa_semplice'];
$mod_continuo $_POST['Mod_continuo'];

echo 
"<div class='form_item'>
        <div class='form_element cf_dropdown'>
            <label class='cf_label' style='width: 180px;'>Abbonamento Multiplo:</label>
            </div>
        <div class='cfclear'>&nbsp;</div>
        </div>"
;
        
        while (
$counter <= $abb_multiplo) {
            echo 
"<div class='form_item'>
                    <div class='form_element cf_textbox'>
                        <label class='cf_label' style='width: 150px;'>Partenza:</label>
                            <input class='cf_inputbox required' maxlength='150' size='30' title='' id='text_"
.$counter."' name='Partenza ".$counter."' type='text' />
          
                    </div>
                        <div class='cfclear'>&nbsp;</div>
                    </div>"
;
            echo 
"<div class='form_item'>
                    <div class='form_element cf_textbox'>
                        <label class='cf_label' style='width: 150px;'>Partenza:</label>
                            <input class='cf_inputbox required' maxlength='150' size='30' title='' id='text_"
.$counter."' name='Arrivo ".$counter."' type='text' />
          
                    </div>
                        <div class='cfclear'>&nbsp;</div>
                    </div>"
;
                    
            echo 
"<div class='form_item'>
                    <div class='form_element cf_dropdown'>
                    <label class='cf_label' style='width: 180px;'>Frequenza:</label>
                        <select class='cf_inputbox' id='select"
.$counter."' size='1' title=''  name='frequenza".$counter."'>
                            <option value=''>Frequenza</option>
                            <option value='1'>Settimanale 5 gg.</option>
                            <option value='2'>Settimanale Illimitato</option>
                            <option value='3'>Mensile Illimitato</option>                  
                        </select>
                    </div>"
;
                    }
 echo 
"<div class='form_item'>
       <div class='form_element cf_dropdown'>
           <label class='cf_label' style='width: 180px;'>Corsa Semplice</label>
           </div>
       <div class='cfclear'>&nbsp;</div>
       </div>"
;       
            
        while (
$counter <= $corsa_semplice) {
            echo 
"<div class='form_item'>
                    <div class='form_element cf_textbox'>
                        <label class='cf_label' style='width: 150px;'>Partenza:</label>
                            <input class='cf_inputbox required' maxlength='150' size='30' title='' id='text_"
.$counter."' name='Partenza_C ".$counter."' type='text' />
          
                    </div>
                        <div class='cfclear'>&nbsp;</div>
                    </div>"
;
            echo 
"<div class='form_item'>
                    <div class='form_element cf_textbox'>
                        <label class='cf_label' style='width: 150px;'>Partenza:</label>
                            <input class='cf_inputbox required' maxlength='150' size='30' title='' id='text_"
.$counter."' name='Arrivo_C ".$counter."' type='text' />
          
                    </div>
                        <div class='cfclear'>&nbsp;</div>
                    </div>"
;
                    }}
?>

<div class="form_item">
  <div class="form_element cf_captcha">
    <label class="cf_label" style="width: 150px;">Scrivi i caratteri:</label>
    <span>{imageverification}</span>
   
    </div>
  <div class="cfclear">&nbsp;</div>
</div>

<div class="form_item">
  <div class="form_element cf_button">
    <input value="Inoltra" name="button_13" type="submit" /><input type="reset" name="reset" value="Reset"/>
  </div>
  <div class="cfclear">&nbsp;</div>
</div>
                 
« Ultima modifica: 11 Giu 2010, 17:35:27 da chesslore »

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:Come posso passare dati tra 2 step form senza inserirli nel db??
« Risposta #3 il: 11 Giu 2010, 17:19:45 »
Non avete detto se parlate di uso di chronoforms.

Dal codice sembra di si.
In tal caso se state usando il plugin Multi page i valori dei campi passano da una pagina all'altra e si ritrovano nell'array php

Codice: [Seleziona]
$posted['nomecampo']
dopo con opportuni script php potete gestire le cose come volete.

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 chesslore

  • Appassionato
  • ***
  • Post: 297
  • Sesso: Maschio
  • Se sei casalingo ami il fuoco del fornello come me
    • Mostra profilo
Re:Come posso passare dati tra 2 step form senza inserirli nel db??
« Risposta #4 il: 11 Giu 2010, 17:31:38 »
Un attimo attimo attimo  attimo (cit. Peter Griggin) ;D

Si io parlo di ChronoForm ma non ti seguo bene, $posted è già una variabile esistente o cosa?

Perdonami sono alle prime armi.

Quello che ho fatto è stato  inserire i vari $_POST in variabili:

Codice: [Seleziona]
<?php
if (isset($_POST['posted'])){
$abb_multiplo $_POST['Abb_multiplo'];
$corsa_semplice $_POST['corsa_semplice'];
$mod_continuo $_POST['Mod_continuo'];

il resto è corretto o almeno credo

se ho letto bene invece dovrei scrivere così:
Codice: [Seleziona]
<?php
if (isset($posted['posted'])){
$abb_multiplo $posted['Abb_multiplo'];
$corsa_semplice $posted['corsa_semplice'];
$mod_continuo $posted['Mod_continuo'];

Grazie per il prezioso aiuto!!

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:Come posso passare dati tra 2 step form senza inserirli nel db??
« Risposta #5 il: 11 Giu 2010, 18:35:15 »
Se usi un form Multi page, cioè formato da più form, viene messo a disposizione l'array $posted che contiene tutti i valori dei campi inseriti nei form.

Per approfondire dai una lettura a questo articolo

http://www.joomla.it/articoli-della-community/3836-from-multi-page-con-chronoforms-1.html
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 chesslore

  • Appassionato
  • ***
  • Post: 297
  • Sesso: Maschio
  • Se sei casalingo ami il fuoco del fornello come me
    • Mostra profilo
Re:Come posso passare dati tra 2 step form senza inserirli nel db??
« Risposta #6 il: 11 Giu 2010, 19:20:03 »
Citazione
Questo ci insegna anche una regola generale dei form Multi Page. I campi di un form precedente vengono recuperati nel form successivo con l'array $posted['nome-campo_form_precedente']. Questo è un aspetto importantissimo ed è il motore che consente il dialogo fra i form e da potenza all'applicazione.

L'ho letto quando è uscito qualche tempo fa.... faccio qualche tentativo

Grazie!

Offline chesslore

  • Appassionato
  • ***
  • Post: 297
  • Sesso: Maschio
  • Se sei casalingo ami il fuoco del fornello come me
    • Mostra profilo
Re:Come posso passare dati tra 2 step form senza inserirli nel db??
« Risposta #7 il: 14 Giu 2010, 08:29:05 »
Mi da un errore che non riesco a capire quando cerco di visualizzare il primo form dopo aver settato il plugin multipage:

Codice: [Seleziona]
$params: JParameter Object ( [_raw] => debugging=0 onsubmit=before_email stepscount= formsnames= stepsnavigation=0 [_xml] => [_elements] => Array ( ) [_elementPath] => Array ( [0] => C:\xampp\htdocs\arfea\libraries\joomla\html\parameter\element ) [_defaultNameSpace] => _default [_registry] => Array ( [_default] => Array ( [data] => stdClass Object ( [debugging] => 1 [onsubmit] => before_email [stepscount] => 2 [formsnames] => Pren_biglietti,Pren_biglietti2 [stepsnavigation] => 1 [finalbuttonname] => button_101 ) ) ) [_errors] => Array ( ) )
Ma è possibile non utilizzare il database?


Offline chesslore

  • Appassionato
  • ***
  • Post: 297
  • Sesso: Maschio
  • Se sei casalingo ami il fuoco del fornello come me
    • Mostra profilo
Re:Come posso passare dati tra 2 step form senza inserirli nel db??
« Risposta #8 il: 14 Giu 2010, 11:38:03 »
Ok risolto.... ma ahime non funziona e non riesco a capirne il motivo. :- :'(

Sembra che passi correttamente l'array  ma perchè non esegue la stampa dei campi questo non riesco a spiegarmelo.


Tu Vales avresti qualche consiglio?

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:Come posso passare dati tra 2 step form senza inserirli nel db??
« Risposta #9 il: 14 Giu 2010, 14:42:38 »
Il database puoi escluderlo. Basta che non assegni tabelle al form, di default è così.

Non ho capito cosa intendi per stampa. Chronoform al momento non ha una funzione di stampa. Ciò è possibile solo inserendo il form in un articolo con l'uso del plugin.

Dovresti fornire qualche elemento in più ed il link alla pagina.
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 chesslore

  • Appassionato
  • ***
  • Post: 297
  • Sesso: Maschio
  • Se sei casalingo ami il fuoco del fornello come me
    • Mostra profilo
Re:Come posso passare dati tra 2 step form senza inserirli nel db??
« Risposta #10 il: 14 Giu 2010, 15:17:05 »
Allora ho creato 2 form:

  • il primo richiede all'utente di indicare la quantità in una select
  • il secondo in base alla quantità crea input text .


Il codice del secondo form è quello sopra: 2 cicli while per impostare in numero di input text.

Ho creato anche un form_madre vuoto ho attivato il debug e questo è il link: http://www.arfea.it/index.php?option=com_chronocontact&chronoformname=Form_madre

La stampa non centra nulla  non mi sono espresso bene.

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:Come posso passare dati tra 2 step form senza inserirli nel db??
« Risposta #11 il: 14 Giu 2010, 19:14:59 »
per mostrare un campo in funzione del valore di un altro/i puo utilizzare alche un singolo form usando i metodi descritti nel seguente topic.

http://forum.joomla.it/index.php/topic,98717.msg436341.html#msg436341

comunque senza vedere il codice e la configurazione del multipage è difficile capire e dare consigli.
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 chesslore

  • Appassionato
  • ***
  • Post: 297
  • Sesso: Maschio
  • Se sei casalingo ami il fuoco del fornello come me
    • Mostra profilo
Re:Come posso passare dati tra 2 step form senza inserirli nel db??
« Risposta #12 il: 15 Giu 2010, 08:38:28 »
Non ho bisogno di creare select dinamiche! Ne campi a scomparsa. La  cosa, a mio parere, è molto meno complessa.

FORM 1 nel quale indico la quantità di biglietti da prenotare:
Codice: [Seleziona]
<div class="form_item">
  <div class="form_element cf_heading">
    <h1 class="cf_text">Prenotazione biglietti e abbonamenti</h1>
  </div>
  <div class="cfclear">&nbsp;</div>
</div>

<div class="form_item">
  <div class="form_element cf_dropdown">
    <label class="cf_label" style="width: 180px;">Abbonamento Multiplo:</label>
    <select class="cf_inputbox" id="select_1" size="1" title=""  name="Abb_multiplo">
    <option value="">Q.tà</option>
      <option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>

    </select>
    <img src="images/stories/Oltrepo - Abbonamento Multiplo.jpg" border="0" alt="Abbonamento Multiplo" title="Abbonamento Multiplo" style="vertical-align: middle;" />
  </div>
  <div class="cfclear">&nbsp;</div>
</div>

<div class="form_item">
  <div class="form_element cf_dropdown">
    <label class="cf_label" style="width: 180px;">Biglietto corsa semplice:</label>
    <select class="cf_inputbox" id="select_3" size="1" title=""  name="corsa_semplice">
    <option value="">Q.tà</option>
      <option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>

    </select>
    <img src="images/stories/Corsa Semplice a TERRA.jpg" border="0" alt="Corsa semplice" title="Corsa semplice" style="vertical-align: middle;" />
  </div>
  <div class="cfclear">&nbsp;</div>
</div>

<div class="form_item">
  <div class="form_element cf_dropdown">
    <label class="cf_label" style="width: 180px;">Scatola Modulo continuo:</label>
    <select class="cf_inputbox" id="select_2" size="1" title=""  name="Mod_continuo">
    <option value="">Q.tà</option>
      <option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>

    </select>
    <img src="images/stories/Modulo_Continuo.jpg" border="0" alt="Modulo Continuo" title="Modulo Continuo" style="vertical-align: middle;" />
  </div>
  <div class="cfclear">&nbsp;</div>
</div>
<input value="" id="hidden_4" name="posted" type="hidden" />
<div class="form_item">
  <div class="form_element cf_button">
    <input value="Inoltra" name="button_100" type="submit" /><input type="reset" name="reset" value="Reset"/>
  </div>
  <div class="cfclear">&nbsp;</div>
</div>

..FORM2 al quale vengono passati i valori dei campi ed in base a quelli crea tante caselle di testo:
Codice: [Seleziona]
<div class="form_item">
  <div class="form_element cf_heading">
    <h1 class="cf_text">Prenotazione biglietti e abbonamenti</h1>
  </div>
  <div class="cfclear">&nbsp;</div>
</div>

<?php
if (isset($posted['posted'])){
$abb_multiplo $posted['Abb_multiplo'];
$corsa_semplice $posted['corsa_semplice'];
$mod_continuo $posted['Mod_continuo'];

echo 
"<div class='form_item'>
        <div class='form_element cf_dropdown'>
            <label class='cf_label' style='width: 180px;'>Abbonamento Multiplo:</label>
            </div>
        <div class='cfclear'>&nbsp;</div>
        </div>"
;
        
        while (
$counter <= $abb_multiplo) {
            echo 
"<div class='form_item'>
                    <div class='form_element cf_textbox'>
                        <label class='cf_label' style='width: 150px;'>Partenza:</label>
                            <input class='cf_inputbox required' maxlength='150' size='30' title='' id='text_"
.$counter."' name='Partenza ".$counter."' type='text' />
          
                    </div>
                        <div class='cfclear'>&nbsp;</div>
                    </div>"
;
            echo 
"<div class='form_item'>
                    <div class='form_element cf_textbox'>
                        <label class='cf_label' style='width: 150px;'>Partenza:</label>
                            <input class='cf_inputbox required' maxlength='150' size='30' title='' id='text_"
.$counter."' name='Arrivo ".$counter."' type='text' />
          
                    </div>
                        <div class='cfclear'>&nbsp;</div>
                    </div>"
;
                    
            echo 
"<div class='form_item'>
                    <div class='form_element cf_dropdown'>
                    <label class='cf_label' style='width: 180px;'>Frequenza:</label>
                        <select class='cf_inputbox' id='select"
.$counter."' size='1' title=''  name='frequenza".$counter."'>
                            <option value=''>Frequenza</option>
                            <option value='1'>Settimanale 5 gg.</option>
                            <option value='2'>Settimanale Illimitato</option>
                            <option value='3'>Mensile Illimitato</option>                  
                        </select>
                    </div>"
;
                    }
 echo 
"<div class='form_item'>
       <div class='form_element cf_dropdown'>
           <label class='cf_label' style='width: 180px;'>Corsa Semplice</label>
           </div>
       <div class='cfclear'>&nbsp;</div>
       </div>"
;       
            
        while (
$counter <= $corsa_semplice) {
            echo 
"<div class='form_item'>
                    <div class='form_element cf_textbox'>
                        <label class='cf_label' style='width: 150px;'>Partenza:</label>
                            <input class='cf_inputbox required' maxlength='150' size='30' title='' id='text_"
.$counter."' name='Partenza_C ".$counter."' type='text' />
          
                    </div>
                        <div class='cfclear'>&nbsp;</div>
                    </div>"
;
            echo 
"<div class='form_item'>
                    <div class='form_element cf_textbox'>
                        <label class='cf_label' style='width: 150px;'>Partenza:</label>
                            <input class='cf_inputbox required' maxlength='150' size='30' title='' id='text_"
.$counter."' name='Arrivo_C ".$counter."' type='text' />
          
                    </div>
                        <div class='cfclear'>&nbsp;</div>
                    </div>"
;
                    }}
?>

<div class="form_item">
  <div class="form_element cf_captcha">
    <label class="cf_label" style="width: 150px;">Scrivi i caratteri:</label>
    <span>{imageverification}</span>
   
    </div>
  <div class="cfclear">&nbsp;</div>
</div>

<div class="form_item">
  <div class="form_element cf_button">
    <input value="Inoltra" name="button_101" type="submit" /><input type="reset" name="reset" value="Reset"/>
  </div>
  <div class="cfclear">&nbsp;</div>
</div>

poi c'è un FORM MADRE vuoto per il plugin MULTIPAGE attivo, dove ho inserito i nomi dei 2 form il n° step, attivato il debug ed i tasti di navigazione.

Non c'è altro.
Non ho ancora configurato ne mail ne salvataggio su DB del secondo form.




Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:Come posso passare dati tra 2 step form senza inserirli nel db??
« Risposta #13 il: 15 Giu 2010, 09:18:20 »
Non può funzionare nel secondo form crei dei campi dinamici di cui chronoform non conosce numero e tipo

Se controlli la finestra AutoGenerated code vedi che il sistema crea automaticamente le informazioni sui campi ed il loro tipo. Nel primo form questo è possibile nel secondo no perchè non conosce il numero dei campi che saranno creati dinamicamente.

Devi trovare un altro metodo. Se descrivi l'obiettivo che vuoi raggiungere forse possiamo aiutarti.
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 chesslore

  • Appassionato
  • ***
  • Post: 297
  • Sesso: Maschio
  • Se sei casalingo ami il fuoco del fornello come me
    • Mostra profilo
Re:Come posso passare dati tra 2 step form senza inserirli nel db??
« Risposta #14 il: 15 Giu 2010, 11:52:09 »
Il mio obbiettivo è il seguente:

Visto le quantità indicate nel primo form avere a disposizione due caselle di testo  per ogni unità al fine di indicare una coppia di dati.

Ma non conosco javascript!!



 



Web Design Bolzano Kreatif