Validare un campo

Raccoglitore di domande e risposte relative a ScriptCase, il generatore di codice php per lo sviluppo rapido di applicazioni.
Regole del forum
Nel forum è vietato fare pubblicità senza avere l'autorizzazione dello staf di Netspecial.
nico_gae
Messaggi: 9
Iscritto il: 13 apr 2020, 10:22

Validare un campo

Messaggio da nico_gae » 17 apr 2020, 10:55

Ciao a tutti,
In un form, dopo aver digitato quanto richiesto in uno dei campi, è possibile validare subito quel campo prima di passare ad un altro campo?
Avrei anche una seconda questione; uso chiaramente la versione 9 di SC. Poichè ho una applicazione scritta con la versione 8, è possibile installare anche la versione 8 sulla stessa macchina in modo da poter convertire questo progetto alla 9 o rovino l'ambiente?
Grazie e cordiali saluti.

Fabio
Messaggi: 449
Iscritto il: 20 feb 2014, 11:43

Re: Validare un campo

Messaggio da Fabio » 20 apr 2020, 16:43

Per il punto 1)
è un controllo javascript, si potrebbero fare nell'apposita sezione ma il codice va scritto a mano.
Punto 2)
Si può fare poichè l'ambiente viene ricostruito in una cartella differente ( /v8/ ). Pi però meglio rimuoverla.
Per sicurezza fai sempre un backup prima di installare la 8.

nico_gae
Messaggi: 9
Iscritto il: 13 apr 2020, 10:22

Re: Validare un campo

Messaggio da nico_gae » 22 apr 2020, 13:58

Grazie Fabio.

Per il punto 2) ho risolto.

Per quanto riguarda il punto 1) non credo di aver capito bene. In quale sezione dovrei scrivere il codice JS?

Cerco di spiegarmi meglio.
  • Poniamo che io abbia un campo Partita IVA e lo voglia validare subito dopo l'inserimento o modifica.
  • Diciamo che mi sono creato, ad esempio, una libreria interna contenente varie funzioni che validano o manipolano la partita iva.
  • Come faccio a richiamare l'opportuna funzione di validazione quando passo ad un altro campo?
Spero che tu possa darmi una dritta.

Grazie ancora e cordiali saluti

Vincenzo
Messaggi: 139
Iscritto il: 11 apr 2014, 11:06

Re: Validare un campo

Messaggio da Vincenzo » 23 apr 2020, 11:11

Ciao,

SC ha già molti filtri e validazioni per un campo, puoi far inserire solo alcuni caratteri e controllare la lunghezza, altrimenti, devi scrivere del codice js da chiamare sul evento onblur del campo, e fare i controlli custom con codice js.
Se invece la validazione deve essere fatta con codice PHP, devi mettere un evento ajax sul campo sempre sul onblur e lì mettere il codice di verifica, da lì poi chiamerai la funzione js che "sistemerà" eventuali colori ad indicare che il campo non va bene.

rino
Messaggi: 660
Iscritto il: 18 giu 2015, 15:42
Località: Pinerolo
Contatta:

Re: Validare un campo

Messaggio da rino » 25 apr 2020, 11:22

una delle caratteristiche molto interessanti di SC è la ottima gestione ajax questo ti permette di usare PHP in modo avanzato anche per effettuare controlli online riducendo il traffico .
in altri termini quando la pagina è sul pc il contatto con il serve viene chiuso e se devi effettuare validazioni che hanno necessità di dati sul serve sei nei guai a meno di usare tecniche di dialogo tra pc e server.
ajax serve a questo, ovviamente può limitarsi anche a solo controlli locali .

SC mette a disposizione tutto quanto occorra per il dialogo e questo permette di rimanere in ambito PHP il che è spesso la scelta migliore .
ovviamente sono filosofie di sviluppo affrontare in questa sede

a livello pc esistono gli eventi ,ovvero una sorta di allarmi che scattano quando accade qualcosa come per esempio l uscita da un campo o la variazione del suo contenuto. SC gestisce questi eventi permettendo di collegare ad essi delle funzioni scritte in PHP che saranno eseguita sul server e il cui risultato sarà aggiornato sul PC.
SC ha anche moltissime macro che permettono di agire via PHP sulle caratteristiche grafiche della videata del PC by passando javascript .
Usa gli eventi e divertiti
Rino Lo Turco
Consulente Informatico; Analista e Sviluppatore; ex IT Manager; Cons. Direzionale di Organizzazione; Consulente Tecnico legale; Esperto protezione dati personali; Internet Service Provider
felice utente e fruitore di ScriptCase

nico_gae
Messaggi: 9
Iscritto il: 13 apr 2020, 10:22

Re: Validare un campo

Messaggio da nico_gae » 27 apr 2020, 10:20

Ciao e grazie,

sto provando, ma ho qualche difficoltà. Mi spiego meglio; poniamo che nel mio form io abbia questi campi:

Codice: Seleziona tutto

Nome ({fld_firstname})
Cognome ({fld_lastname})
Nome completo ({fld_namenurse})
Il campo Nome completo non è editabile, ma è dato dalla concatenazione dei primi due:
{fld_fullname}={fld_lastname}." ".{fld_firstname};

Voglio fare in modo che quando compilo per un nuovo inserimento o aggiornamento i campi Nome e Cognome, venga inizializzato e visualizzato il campo Fullname.

Ho provato a creare un evento Ajax, ma quì incominciano i problemi.
  1. Non capisco che tipo di evento scegliere fra quelli proposti (onBlur, onChange etc.)
  2. Non so quale è il campo fra i tre da selezionare per creare l'evento.
  3. Di conseguenza, qual'è il campo da passare come parametro? Da come è scritto nelle istruzioni sembra che se ne possa passare più di uno, ma in realtà mi è consentito selezionarne solo uno.
Mi riferisco ovviamente a questo screenshot
Immagine

Chiaramente non ha molto senso il campo Fullname, ma è utile per capire come funzionano questi eventi.

Spero che tu possa chiarirmi queste perplessità.

Ciao e grazie

Vincenzo
Messaggi: 139
Iscritto il: 11 apr 2014, 11:06

Re: Validare un campo

Messaggio da Vincenzo » 27 apr 2020, 18:07

Devi "ricalcolare" il nome completo alla variazione di nome e/o cognome, quindi sul campo fld_firstname, metterai un evento ajax su onblur o onchange, il primo è quando il campo perde il focus il secondo ad ogni cambiamento quindi ad ogni pressione di tasto, vedi tu quel preferisci, alla funzione vanno passati i campi fld_firstname e fld_lastname ed infine la funzione avrà una sola riga, ovvero

Codice: Seleziona tutto

{fld_namenurse} = {fld_firstname} . "  " . {fld_lastname};
Ad ogni variazione del nome il nome completo cambierà di conseguenza, metti lo stesso evento ajax sul campo fld_latname ed anche al variare del cognome avrai il nome completo aggiornato.

nico_gae
Messaggi: 9
Iscritto il: 13 apr 2020, 10:22

Re: Validare un campo

Messaggio da nico_gae » 28 apr 2020, 10:38

Adesso mi è più chiaro e dalle prove fatte vedo che funziona.

Ho voluto, però, provare con un campo diverso ed ho dei problemi.

Nella gestione di una anagrafica ho tre campi, rispettivamente CAP Città e provincia.

Vorrei valorizzare i campi CAP e provincia in base alla città e per fare questo ho creato un evento onBlur su città che è di tipo autocomplete; i dati sono presi da una tabella con cap, provincia e comune.

Quando lascio il focus mi viene ritornato un errore di accesso al database. Per spiegarmi questi sono gli screenshot prima e dopo

Immagine

Immagine

La seconda immagine viene generata tramite il codice inserito nell'evento e modificato per fare qualche controllo.

Codice: Seleziona tutto

$city={fld_birth_city};
echo($city);

sc_lookup(ds,"SELECT fld_zipcode, fld_prov FROM tb_zipcode WHERE fld_city_name = {fld_birth_city}");

if ({ds} === false)
{
echo "Errore di Accesso = ". {my_data_erro} ;
}
elseif (empty({ds}))
{
echo ("La Select non ha ritornato dati per ".$city);
}
else
{
{fld_birth_zipcode} = {ds[0][0]};
{fld_birth_prov} = {ds[0][1]};}
Non riesco a capire dove sbaglio e spero in un aiuto.

Grazie e ciao

Vincenzo
Messaggi: 139
Iscritto il: 11 apr 2014, 11:06

Re: Validare un campo

Messaggio da Vincenzo » 28 apr 2020, 14:12

se ci fosse stato l'echo dell'errore corretto

Codice: Seleziona tutto

echo "Errore di Accesso = ". {ds_erro} ;
probabilmente avresti visto l'errore di sintassi SQL, se cerchi per nome città l'sql dovrà essere

Codice: Seleziona tutto

sc_lookup(ds,"SELECT fld_zipcode, fld_prov FROM tb_zipcode WHERE fld_city_name = '{fld_birth_city}'");
altrimenti diventa

SELECT fld_zipcode, fld_prov FROM tb_zipcode WHERE fld_city_name = Bassabo Besciano

che non è sql corretto.

Di solito non accade se si usano gli ID perchè essendo numeri non vanno fra virgolette, ma se usi le stringhe nelle condizioni where devi racchiuderle fra apici.

nico_gae
Messaggi: 9
Iscritto il: 13 apr 2020, 10:22

Re: Validare un campo

Messaggio da nico_gae » 28 apr 2020, 15:43

Perfetto, così funziona.
Un'ultima cosa e poi penso di aver quadrato il cerchio.
Ho provato ad usare anche delle funzioni per validare un campo. In caso di errore, posso fare in modo di non perdere il focus? Eventualmente in che modo?
Ciao e grazie ancora. I tuoi suggerimenti sono stati preziosi.

Rispondi

Chi c’è in linea

Visitano il forum: Ahrefs [Bot] e 7 ospiti