Joomla.it Forum
Componenti per Joomla! => Gestione Form => : goblin64 03 Jan 2011, 13:01:00
-
Ciao a tutto il forum :)
Ho questo problema: ho fatto una pagina dove ci si può iscrivere a corsi (interni all'azienda in cui lavoro, non pubblici) e mi hanno chiesto di limitare le iscrizioni a 20 persone a corso. Devo anche far visualizzare gli iscritti già presenti, ma il problema è NON ACCETTARE PIU' ISCrizioni QUANDO RAGGIUNGO I 20 ISCRITTI.
Non riesco a trovare il modo per impedire qa chronoform di accettare altre persone :(
Qualcuno mi può aiutare per cortesia? Il 7 gennaio, in teoria, dovrei essere pronto con questo form
-
quando fa la query di inserimento va creata una funzione che verifichi quanti si sono iscritti.
oppure quando viene chiamato il forma la stessa funzione può evitare di far compilare il form.
M.
-
Grazie per la risposta, ma.... forse mi è scappato di NON scrivere che non so una cippa lippa di query 8)
Io ho fatto tutto con chronoform, non ho scritto niente. Giusto qualche riga di html.
Mi potresti scrivere un esempio? Se non riesci grazzie lo stesso, in caso scrivo in un'altro forum dove parlano solo di db.
-
beh credo sia una cosa da sviluppare ad hoc, non si può fare un esempio...
in caso scrivo in un'altro forum dove parlano solo di db.
---------------------------------------------------------------------------
... qs nn l'ho capita...
M.
-
intendevo che cambiavo nel senso che se qui si parla di db, magari provavo sotto joomla 1.5 e GESTINO FORM (http://forum.joomla.it/index.php/board,86.0.html) oppure sotto joomla 1.5 direttamente. nn è che volevo cambiare sito :) si ho scritto male :) sorry!
-
no, non è che l'ho interpretata male, non l'avevo proprio capita.
difficile trovare quello che cerchi bell'e che pronto
M.
-
:( grazie lo stesso. sei stato gentile :)
-
ho ritrovato il codice che avevo perso... e che nn funziona.
qualcuno me lo riesce a spiegare un modo da modificarlo per fare ciò che mi serve?
<?php
$user =& JFactory::getUser();
$db =& JFactory::getDBO();
// conteggio del prossimo atto
$query = "SELECT count(*) FROM `#__tua_tabella` where `id` = '".$user->id."'";
$db->setQuery($query);
$nomes = $db->loadResultArray();
$numero=$nomes+1;
?>
cf_id è il numero che il form di chrono ha assegnato al record di iscrizione
grazzzZZZie!!!!! :)
-
// conteggio del prossimo atto
$query = "SELECT count(*) FROM `#__tua_tabella` where `id` = '".$user->id."'";
-------------------------------------------------------------------------------------------------------------
...mi sfugge qualcosa...
vuoi limitare le iscrizioni a qualcosa quindi avrai una tab dedicata a raccogliere le iscrizione e se più di una tipologia avrai qualche campo che le distingue.
fai una normalissima query mettendo come discriminante ciò che distingue una dall'altra o se solo una tipologia non serve, dopodichè usi getAffectedRows (http://docs.joomla.org/How_to_use_the_database_classes_in_your_script)
se il numero di righe supera o è uguale al max
http://api.joomla.org/Joomla-Framework/Application/JController.html#setRedirect
setRedirect() con msg
M.
-
Quello che invio è un'idea di lavoro, non conoscendo i campi del form e la tabella che stai usando.
il seguente codice va inserito nella finestra Validation del form nel campo Server Side Validation Code dopo aver settato a Yes il campo Enables Server Side Validation
?php
$user =& JFactory::getUser();
$db =& JFactory::getDBO();
$query = "SELECT count(*) FROM `#__tua_tabella` WHERE `campo_corso` = '".Jrequest::getVar('campo_corso','','post')."'";
$db->setQuery($query);
$nomes = $db->loadResultArray();
$numero=$nomes;
if ($numero>=20) {
return "E' stato raggiunto il numero massimo dei partecipanti. L'iscrizione non può essere accetta";
}
?>
Dico subito che si può fare meglio. Ma il tempo è tiranno.
Con questa soluzione il messaggio appare dopo l'invio del form e questo può essere un difetto, perchè compilare un form quando si sà già che il corso non ha disponibilità. Ma meglio di niente.
Ottimo sarebbe pensare un javascript che elabora preventivamente con php la tabella del database ed avverte appena si inserisce il corso che ha raggiunto il pieno. Ma ora non ho tempo per questo.
E' uno stimolo ad approfondire. ;D
-
GRAZIEEEEEEEEEEEEE!!!!!!!!!!!!!!!!!!!!
GRAZIE Grazie grazieeeeeeeeeeeee
Sia a Vales che a mau_develop.
DOmani in ufficio (ho tutto la in un mio server) lo provo subito poi vi dico e sono riuscito a farlo funzionare.
A DOMANI!!!!
Ciaoooooooooooo
e grazie ancora!
-
La cosa interessa anche a me però vorrei far apparire una numerazione nel form e nell'email di conferma