Joomla.it Forum
Componenti per Joomla! => Gestione Form => : confusoefelice 07 Apr 2016, 17:58:56
-
ho costruito un form per l'inserimento delle formazioni nel sito di fantacalcio che sto costruendo e vorrei che gli utenti non possano inserire un giocatore già inserito quindi ho trovato qui da voi una guida che mi permette di fare ciò ma è fatta per una versione precedente di chronoforms. Nella guida viene spiegato di inserire la action Custom server side validation nell'area On Submit e di inserire nel campo Code un codice php che io adattato ho al mio caso e spero che vada bene
<?php
if ( $form->data['squadra'] != $form->data['porta'] != $form->data['titolare1'] != $form->data['titolare2'] != $form->data['titolare3'] != $form->data['titolare4'] != $form->data['titolare5'] != $form->data['titolare6'] != $form->data['titolare7'] != $form->data['titolare8'] != $form->data['titolare9'] != $form->data['titolare10'] != $form->data['ris_porta'] != $form->data['riserva1'] != $form->data['riserva2'] != $form->data['riserva3'] != $form->data['riserva4'] != $form->data['riserva5'] != $form->data['riserva6'] ) {
$form->validation_errors['squadra'] = "squadra gia inserita";
$form->validation_errors['porta'] = "porta gia inserita";
$form->validation_errors['titolare1'] = "giocatore gia inserito";
$form->validation_errors['titolare2'] = "giocatore gia inserito";
$form->validation_errors['titolare3'] = "giocatore gia inserito";
$form->validation_errors['titolare4'] = "giocatore gia inserito";
$form->validation_errors['titolare5'] = "giocatore gia inserito";
$form->validation_errors['titolare6'] = "giocatore gia inserito";
$form->validation_errors['titolare7'] = "giocatore gia inserito";
$form->validation_errors['titolare8'] = "giocatore gia inserito";
$form->validation_errors['titolare9'] = "giocatore gia inserito";
$form->validation_errors['titolare10'] = "giocatore gia inserito";
$form->validation_errors['ris_porta'] = "giocatore gia inserito";
$form->validation_errors['riserva1'] = "giocatore gia inserito";
$form->validation_errors['riserva2'] = "giocatore gia inserito";
$form->validation_errors['riserva3'] = "giocatore gia inserito";
$form->validation_errors['riserva4'] = "giocatore gia inserito";
$form->validation_errors['riserva5'] = "giocatore gia inserito";
$form->validation_errors['riserva6'] = "giocatore gia inserito";
return false;
}
?>
ma il problema è che in chronoforms v5 non c'è più la action Custom server side validation ma c'è server validation che non mi permette di inserire il codice php.
cosa devo fare ammesso che stia fando bene, se invece sto facendo una cavolata mi dite per favore come dovrei procedere per ottenere il controllo su tutti i campi?
-
guarda in firma che c'è una guida per chronoforms v5
chronoforms: impedire valori duplicati in un campo
-
scusa la mia ignoranza che è abbastanza elevata lo so, ma io vorrei che il controllo del campo uguale venga effettuato prima di inserire i dati nella tabella del DB, come accade per il campo vuoto che, mettendo required non permette l'inserimento nel DB. ho letto la guida ma se non ho capito male il controllo è sui dati nella tabella del DB.
-
non ho capito
-
scusami cerco di farmi capire, nel mio form ho cliccato su edit di ogni campo e ho messo required nella scheda validation; quando vado ad inserire i dati nel form se ne lascio uno vuoto, non mi fa inserire i dati nel DB e mi appare una scritta campo obbligatorio, non si può fare la stessa cosa con i campi uguali?
-
scusa ma continuo a non capire.
lascia perdere le validazioni, adesso non ci interessano.
fammi una breve descrizione di ciò che deve succedere nel momento che inserisco il nome di un giocatore che però in quella tabella esiste già.
-
la tabella non mi interessa anche perchè è ancora vuota nel momento che un utente inserisce la formazione della sua squadra;
a me serve che, nel momento che un utente compila il form non possa inserire due volte lo stesso giocatore, per esempio:
SQUADRA REAL AVENZA
PORTA BUFFON
TITOLARE1 CHIELLINI
TITOLARE2 CHIELLINI
TITOLARE3 DAINELLI
TITOLARE4 POGBA
TITOLARE5 CANDREVA
TITOLARE6 GIACCHERINI
TITOLARE7 PERISIC
TITOLARE8 HIGUAIN
TITOLARE9 TONI
TITOLARE10 ICARDI
RIS PORTA PERIN
RISERVA1 PALETTA
RISERVA2 DRAME
RISERVA3 ANDRESON
RISERVA4 SAPONARA
RISERVA5 DESTRO
RISERVA6 MACCARONE
Il giocatore chiellini è doppio quindi quando clicco su submit (nel mio caso invia formazion) si deve bloccare, non deve inserire i dati nella tabella e mi deve dire con un messaggio che quel campo è doppio. questo mi serve per tutti i 19 campi del form.
grazie e scusa se non ero riuscito a farmi capire
-
la tabella non mi interessa anche perchè è ancora vuota nel momento che un utente inserisce la formazione della sua squadra
Funziona proprio così, se la tabella è vuota al momento di premere invia, salva semplicemente, quindi se hai inserito il giocatore PIPPO questo viene salvato.
Se nuovamente viene scelto un giocatore con nome pippo, non sarà possibile salvare il form con tutto il suo contenuto, dovrai solo cambiare nome al giocatore
-
se scrivo nel form come nell'esempio che ti ho fatto mi inserisce tutti i giocatori con il giocatore doppio (in questo caso chiellini) è questo che non voglio, come se lascio un campo vuoto mi dice campo obbligatorio.
per quanto riguarda la tabella dopo che ho inserito la squadra correttamente (senza giocatori doppi) se fra 1 minuto la reinserisco di nuovo cambiando solo l'ordine dei giocatori anche se sono gli stessi la inserisce e a me va bene così. io desidero solo che in fase di compilazione del form quando clicco invia formazione mi dica che c'è un campo doppio esattamente come fa per il campo vuoto.
-
un nome un programma confuso e felice.....
si mi pari confuso, quella è la funzione, se il nome c'è devi procedere inserendo altro nome.
-
adesso si che sono confuso e infelice, non ci capisco più niente, perdonami non vorrei essere scortese ma non capisco quello che mi dici e non so che devo fare.
-
forse così riesco a farmi capire:
mi sono riletto la tua guida chronoforms: impedire valori duplicati in un campo (http://www.icagenda.it/chronoforms-impedire-valori-duplicati-in-un-campo.html)
nel tuo form con un solo campo (tipologoa urbanistica) dopo aver inserito il dato premi inserisci e il dato si memorizza nella tabella
se dopo fai un altro inserimento con lo stesso dato viene scritto Nella tabella esiste già il nome inserito, io non voglio questo
nel mio form con 19 campi premo inserisci dopo averli compilati tutti e li memorizza nella tabella
se dopo faccio un altro inserimento con gli stessi dati nei 19 campi li memorizza tutti nella tabella quindi ho due inserimenti uguali e così mi va bene perche l'utente x può voler inserire due volte la stessa squadra,
quello che non voglio è che uno dei 19 campi sia uguale ad un altro e questo me lo deve dire prima di inserire i dati nella tabella (es attenzione titolare3 uguale a titolare7)
esmpio così non va bene giocatore bertolacci doppi nella solita squadra
COBRESAL Bologna Ambrosio Antonelli Ranocchia Benassi Bertolacci Sanmarco Bertolacci Belotti Salah Pinilla Genoa Dodo Murillo Duncan Allan Destro Jovetic
così invece va bene due squadre uguali ma nessun giocatore doppio nella solita squadra
VITORIAGUIMARAES Juventus Alex Zappacosta Digne Khedira Rincon Suso Tello Barnardeschi Cassano Mbakogu riserva De Maio Adnan Laxalt Sala Matri Floccari
VITORIAGUIMARAES Juventus Alex Zappacosta Digne Khedira Rincon Suso Tello Barnardeschi Cassano Mbakogu riserva De Maio Adnan Laxalt Sala Matri Floccari
-
come mai non mi rispondi più? non sono stato scortese.
ho creato il mio primo sito con joomla leggendo tutto quello che era a mia disposizione senza scrivere 2000 post come fanno tanti e cel'ho fatta. ho scritto solo due post perchè non ho trovato niente che mi aiutasse, sempre con educazione e rispetto. capisco che non è facile gestire un neofita ma se non chiedo non imparo.
-
Non ti rispondo perchè ho una vita, non vivo nel forum per fortuna ;)
Sinceramente non so come puoi risolvere, non conosco i meccanismi del fantacalcio e non ho idea di come funzioni, anche solo spiegarti cosa è un fuorigioco sarebbe per me un impresa ardua solo perchè il calcio non è la mia passione.
Detto questo però mi pare di ricordare che una volta c'era un estensione per fantacalcio che potrebbe evitarti questo stallo.
-
ti chiedo scusa pensavo di averti stressato troppo, cercherò di risolvere in qualche modo, nel caso ci riesca posterò la soluzione, grazie del tuo interessamento
-
forse ho trovato una soluzione però funziona al contrario, mi spiego meglio:
se edito uno dei campi textbox del form, nella scheda validation c'è il campo confirm che ha questa istruzione (Used to validate the value of this field against the value of another, enter the other field's ID), allora ho provato ad inserire nel confirm del campo textbox titolare2 l'ID del campo precedente e cioè titolare1; ho provato il form e succede che, se i dati inserirti nei due campi (titolare 1 e titolare2 ) sono diversi blocca l'inserimento dei dati nel DB e compare una nuvoletta con scritto uguale a titolre2, se invece i dati inserirti nei due campi (titolare 1 e titolare2 ) sono uguali inserisce i dati nel DB. a me servirebbe il contrario, è possibile?
-
non credo, il campo confirm serve per confermare una password o un indirizzo email o qualsiasi altra cosa vada confermata