Joomla.it Forum
Componenti per Joomla! => Gestione Form => : daniel_gentoo 07 Nov 2010, 17:00:21
-
Ciao,
Ho creato dei form multipli con ChronoForms però l'ultima form che dovrebbe fare l'iserimento del dato nella tabella non inserisce niente. Vi posto il codice!
<input name="cod_gara" value="<?php echo $posted['cf_id']; ?>" /> <br />
<?php echo $posted['cf_id']; ?> <br />
<?php echo $posted['costogara']; ?> <br />
<?php echo $posted['costopulmino']; ?> <br />
<?php echo $posted['localita']; ?> <br />
<?php echo $posted['data']; ?> <br />
<div>
<div>
<h1>Ti vuoi iscrivere alla gara? Confermi ?</h1>
</div>
<div> </div>
</div>
<div>
<div>
Localita: <?php echo $posted['localita']; ?><br/><br/>
Data Gara: <?php echo $posted['data']; ?><br/><br/>
</div>
<div> </div>
</div>
<div>
<div>
Costo Gara: <?php echo $posted['costogara']; ?> €<br/><br/>
Costo Pulmino: <?php echo $posted['costopulmino']; ?> €<br/><br/>
<?php
$cg=$_POST['costogara'];
$cp=$_POST['costopulmino'];
$totale= $cg+$cp;
?>
Costo Totale: <?php echo $totale ?> €<br/><br/>
</div>
<div> </div>
</div>
<div>
<div>
<input value="Conferma" name="button_10" type="submit" />
<a href="index.php?option=com_chronocontact&chronoformname=form_main&cfformstep=2"
style="text-decoration: none;"><input value="Indietro" type="button"></a>
</div>
<div> </div>
</div>
Dove sbaglio??
Ciao Grazie!
-
Up! :)
-
Un consiglio, non uppare a così poca distanza, qui non viene visto bene.
-
Ok Scusami!
Scusa se ho sbagliato sezione!
Aspetto consigli!
Grazie!
-
Non preoccuparti per il cambio sezione, nel caso ci siamo noi moderatori che provvediamo, piuttosto mi raccomando per il futuro a non uppare più in quella maniera, ciao.
-
Per maggiore chiarezza occorrerebbe vedere gli altri form e da dove vengono i campi inseriti.
Nell'ultimo form prova a inserire dei campi nascosti con il valori provenienti dai precedenti form.
esempio
<input type="hidden" name="costogara" value="<?php echo $posted['costogara']; ?>" />
e così via per gli altri campi che non sono inseriti nell'ultimo form.
Non si usa l'array $_POST['nomecampo']
non è sicuro e consentirebbe inclusioni di tutti i tipi.
in Joomla si usa JRequest::getVar('nomecampo','','post')
-
Per maggiore chiarezza occorrerebbe vedere gli altri form e da dove vengono i campi inseriti.
Nell'ultimo form prova a inserire dei campi nascosti con il valori provenienti dai precedenti form.
esempio
<input type="hidden" name="costogara" value="<?php echo $posted['costogara']; ?>" />
e così via per gli altri campi che non sono inseriti nell'ultimo form.
Non si usa l'array $_POST['nomecampo']
non è sicuro e consentirebbe inclusioni di tutti i tipi.
in Joomla si usa JRequest::getVar('nomecampo','','post')
Lì ho messi così per vedere cosa restituiva.
quanto scrivi "JRequest::getVar('nomecampo','','post')" è l'equivalente di "<?php echo $posted['costogara']; ?>" Gisuto??
Ti posto il codice degli altri form! 1 attimo.
-
Primo form con la scelta.
<?php
$nome_selected = JRequest::getInt('localita', '', 'post');
$db =& JFactory::getDBO();
$query = "
SELECT `cf_id`,`localita`, `costogara`, `costopulimino`, date_format(data,'%d/%m/%Y') data
FROM `#__chronoforms_gestione_gare`
ORDER BY `localita`
";
$db->setQuery($query);
$nomes = $db->loadAssocList();
$nome_options = "";
foreach ( $nomes as $v ) {
if ( $nome_selected == $v['localita'] ) {
$selected = "selected='selected'";
} else {
$selected = '';
}
$nome_options .= "<option value='".$v['cf_id']."' $selected >".$v['localita']. ': Gara del ' .$v['data']."</option>";
}
?>
<div class="form_item">
<div class="form_element cf_dropdown">
<label class="cf_label" style="width: 150px;">Scelta Gare</label>
<select class="cf_inputbox" id="select_0" size="1" title="" name="cf_id">
<!--<option value="">Choose Option</option>-->
<?php echo $nome_options; ?>
</select>
</div>
<div class="cfclear"> </div>
</div>
<div class="form_item">
<div class="form_element cf_button">
<input value="Conferma" name="button_1" type="submit" />
</div>
<div class="cfclear"> </div>
</div>
Secondo form con il riepilo della gara ed eventuale utilizzo del pulmino per ora sta come ceckbox forse lo metto come textbox e deve inserire "S" o "N" poi vedo. Non c'è il controllo per vedere se il ceckbox ha il flag o meno... devo vedere anche questo.
<?php
$db =& JFactory::getDBO();
$query = "
SELECT `localita`, `costogara`, `costopulimino`, date_format(data,'%d/%m/%Y') data
FROM `#__chronoforms_gestione_gare` WHERE `cf_id`=".$posted['cf_id'];
$db->setQuery($query);
$nomes = $db->loadAssocList();
foreach ( $nomes as $v ) {
$localita1 = $v['localita'];
$costogara1 = $v['costogara'];
$costopulmino1 = $v['costopulimino'];
$data1 = $v['data'];
}
$querydata = "
SELECT `data`, `costogara`
FROM `#__chronoforms_gestione_gare` WHERE `cf_id`=".$posted['cf_id'];
$db->setQuery($querydata);
$set = $db->loadObjectList();
foreach ( $set as $item ) {
$datagara = $item->data;
$costogara= $item->costogara;
}
$user =& JFactory::getUser();
$id=$user->id;
$sql = "SELECT scadenzacetificato, fondocassa FROM #__users WHERE id=".$id;
$db->setQuery($sql);
$set = $db->loadObjectList();
foreach ( $set as $item ) {
$scadenzacetificato = $item->scadenzacetificato;
$fondocassa = $item->fondocassa;
}
$tot = $costogara1 + $costopulmino1;
?>
<?php
if ($datagara > $scadenzacetificato OR $costogara > $fondocassa)
{
echo "<h1>Non puoi partecipare a questa gara. Certificato scaduto o fondo cassa non sufficente per partecipare alla gara!</h1>";
echo '<br />
<a href="index.php?option=com_chronocontact&chronoformname=form_main&cfformstep=1"
style="text-decoration: none;"><input value="Indietro" type="button"></a>';
}
else
{
echo '
<div class="form_item">
<div class="form_element cf_textbox">
<label class="cf_label" style="width: 200px;">Località</label>
<input class="cf_inputbox" maxlength="150" size="30" title="" id="text_0" name="localita" type="text" readonly="readonly"
value="'.$localita1.'"/>
</div>
<div class="cfclear"> </div>
</div>
<div class="form_item">
<div class="form_element cf_textbox">
<label class="cf_label" style="width: 200px;">Data Gara</label>
<input class="cf_inputbox" maxlength="150" size="30" title="" id="text_1" name="data" type="text" readonly="readonly" value="'.$data1.'" />
</div>
<div class="cfclear"> </div>
</div>
<div class="form_item">
<div class="form_element cf_textbox">
<label class="cf_label" style="width: 200px;">Costo Gara In €</label>
<input class="cf_inputbox" maxlength="150" size="30" title="" id="text_3" name="costogara" type="text" readonly="readonly"
value="'.$costogara1.'" />
</div>
<div class="cfclear"> </div>
</div>
<div class="form_item">
<div class="form_element cf_textbox">
<label class="cf_label" style="width: 200px;">Costo Pulmino in €</label>
<input class="cf_inputbox" maxlength="150" size="30" title="" id="text_4" name="costopulmino" type="text" readonly="readonly"
value="'.$costopulmino1.'" />
</div>
<div class="cfclear"> </div>
</div>
';
if ($tot > $fondocassa)
{
echo '
<div class="form_item">
<div class="form_element cf_checkbox">
<label class="cf_label" style="width: 200px;">Vuoi utilizzare il Pulmino?</label>
<div class="float_left">
<input value="Pulmino" title="" class="radio" id="check00" name="check0[]" type="checkbox" disabled="disabled" />
<label for="check00" class="check_label">Pulmino</label>
<br />
</div>
</div>
<div class="cfclear"> </div>
</div>
<div class="form_item">
<div class="form_element cf_button">
<input value="Invia" name="button_6" type="submit" />
<a href="index.php?option=com_chronocontact&chronoformname=form_main&cfformstep=1"
style="text-decoration: none;"><input value="Indietro" type="button"></a>
</div>
<div class="cfclear"> </div>
</div>';
}
else
{
echo '
<div class="form_item">
<div class="form_element cf_checkbox">
<label class="cf_label" style="width: 200px;">Vuoi utilizzare il Pulmino?</label>
<div class="float_left">
<input value="Pulmino" title="" class="radio" id="check00" name="check0[]" type="checkbox" />
<label for="check00" class="check_label">Pulmino</label>
<br />
</div>
</div>
<div class="cfclear"> </div>
</div>
<div class="form_item">
<div class="form_element cf_button">
<input value="Invia" name="button_6" type="submit" />
<a href="index.php?option=com_chronocontact&chronoformname=form_main&cfformstep=1"
style="text-decoration: none;"><input value="Indietro" type="button"></a>
</div>
<div class="cfclear"> </div>
</div>';
}
}
?>
Il terzo form è la conferma della partecipazione alla gara questo form deve fare l'iserimento nella tabella dove ci sono le prenotazione alle gare poi deve anche sottrarre la speza totale della gara all'utente. L'utente ha un fondo cassa con dei soldi che poi verranno scalati quindi anche upgrade della tabella jos_user che ho modificato con altri campi.
<div>
<div>
<input name="cod_gara" value="<?php echo $posted['cf_id']; ?>"/>
</div>
<div> </div>
</div>
<br />
<?php echo $posted['cf_id']; ?> <br />
<?php echo $posted['costogara']; ?> <br />
<?php echo $posted['costopulmino']; ?> <br />
<?php echo $posted['localita']; ?> <br />
<?php echo $posted['data']; ?> <br />
<div>
<div>
<h1>Ti vuoi iscrivere alla gara? Confermi ?</h1>
</div>
<div> </div>
</div>
<div>
<div>
Localita: <?php echo $posted['localita']; ?><br/><br/>
Data Gara: <?php echo $posted['data']; ?><br/><br/>
</div>
<div> </div>
</div>
<div>
<div>
Costo Gara: <?php echo $posted['costogara']; ?> €<br/><br/>
Costo Pulmino: <?php echo $posted['costopulmino']; ?> €<br/><br/>
<?php
$cg=$_POST['costogara'];
$cp=$_POST['costopulmino'];
$totale= $cg+$cp;
?>
Costo Totale: <?php echo $totale ?> €<br/><br/>
</div>
<div> </div>
</div>
<div>
<div>
<input value="Conferma" name="button_send" type="submit" />
<a href="index.php?option=com_chronocontact&chronoformname=form_main&cfformstep=2"
style="text-decoration: none;"><input value="Indietro" type="button"></a>
</div>
<div> </div>
</div>
<br/><br/>
Spero di essere stato chiaro! :)
Grazie 1000!
-
Dovresti attivare il debug nel plugin Multipage del form madre e eventualmente negli altri form per verificare il flusso dei campi inviati.
-
Lì ho attivati... mi sembra che va tutto bene!
Ti posto il bebug
Primo form
$params: JParameter Object ( [_raw] => stepscount=3 formsnames=scelta_gare,info_gara,conferma_iscrizione finalbuttonname=button_send stepsnavigation=1 debugging=1 onsubmit=before_email [_xml] => [_elements] => Array ( ) [_elementPath] => Array ( [0] => C:\xampp\htdocs\avis.gestione.gare\libraries\joomla\html\parameter\element ) [_defaultNameSpace] => _default [_registry] => Array ( [_default] => Array ( [data] => stdClass Object ( [stepscount] => 3 [formsnames] => scelta_gare,info_gara,conferma_iscrizione [finalbuttonname] => button_send [stepsnavigation] => 1 [debugging] => 1 [onsubmit] => before_email ) ) ) [_errors] => Array ( ) )
formname: form_main
Pages: Array ( [0] => scelta_gare [1] => info_gara [2] => conferma_iscrizione )
Current step: 1
Session data: Array ( )
Secondo form
Posted: Array ( [cf_id] => 2 [button_1] => Conferma [d8ad697973f65de68ae0fb22fc084e5a] => 1 [1cf1] => 23e0352f3f0a3634e3d8f7d81b719d0a [chronoformname] => form_main )
Files: Array ( )
Current step: 1
Terzo Form
Posted: Array ( [cf_id] => 2 [button_1] => Conferma [d8ad697973f65de68ae0fb22fc084e5a] => 1 [1cf1] => 23e0352f3f0a3634e3d8f7d81b719d0a [chronoformname] => form_main [localita] => San Benedetto del Tronto [data] => 15/08/2011 [costogara] => 20 [costopulmino] => 10 [button_9] => Invia
[cfformstep] => 1 )
Files: Array ( )
Current step: 2
Al terzo form do conferma
Posted: Array ( [cf_id] => 2 [button_1] => Conferma [d8ad697973f65de68ae0fb22fc084e5a] => 1 [1cf1] => 23e0352f3f0a3634e3d8f7d81b719d0a [chronoformname] => form_main [localita] => San Benedetto del Tronto [data] => 15/08/2011 [costogara] => 20 [costopulmino] => 10 [button_9] => Invia [cfformstep] => 1 [cod_gara] => 2 [button_send] => Conferma )
Files: Array ( )
Current step: 3
Mi sembra che sta tutto ok!
Sbaglio??
-
Se tutti i campi sono valorizzati e se hai selezionato correttamente la tabella nel form madre deve salvare i dati.
-
Nelle prorpietà del form_main è connesso alla tabella che mi serve quando si fa conferma nell'ultimo form. Come parametro di conferma vuole il nome del bottone, ci ho anche isnerito quello!
Non so cosa pensare!
mmmmmm..... :(