Joomla.it Forum
Componenti per Joomla! => Gestione Form => : gracek79 15 Oct 2010, 22:10:58
-
:'( salve a tutti sono arrivata fin qui perchè non riesco a capire una cosa... ho necessità di inserire un campo di ricerca in un form di inserimento dati....
in sostanza sto creando un database di inseriemento clienti, e il cliente mi ha chiesto di inserire un campo di ricerca in caso già il cliente sia nella banca dati... premessa i campi cliente sono nella stessa tabella del database in cui andrò a salvare i dati inseriti nel form... c'è qualcuno che mi può dare delucidazioni in merito??
grazie anticipatamente :)
-
Per fare questo tipo di verifica si puo usare la sezione Server Side Validation della finestra Validation del form.
Dopo aver abilitato con Yes la funzione, nel campo Server Side Validation code può essere inserito del codice php per verificare se nella tabella è già presente il nominativo.
Quindi basta contare i record con quel valore di campo se il risultato sarà maggiore di 0 il nominativo è già presente e sarà inviato un messaggio all'utente.
Esempio:
$db =& JFactory::getDBO();
$query = "
SELECT count(*) FROM `#__chronoforms_utenti` WHERE `utente`='".JRequest::getVar('utente','','post')."'";
$db->setQuery($query);
$nomes = $db->loadRow();
if($nomes[0]<>0 ) {
return "L'utente è gia stato inserito in archivio.";
}
ovviamente devi adattare il nome del campo (nel mio caso utente) ed il nome della tabella.
-
si ma io ho bisogno anche di richiamare i dati dell'utente che sono già inseriti.... e metterli ancora nella compilazione del form....
grazie cmq per la risposta :)
-
ho inserito quello che mi hai consigliato tu e mi esce questo errore
Home
$db =& JFactory::getDBO(); $query = " SELECT count(*) FROM `an_cliente` WHERE `cognome` 'nome'='".JRequest::getVar('cognome','nome','','post')."'"; $db->setQuery($query); $nomes = $db->loadRow(); if($nomes[0]<>0 ) { return "L'utente è gia stato inserito in archivio."; }
INSERIMENTO DATI AVVENUTO CON SUCCESSO
e nello stesso tempo mi inserisce sempre il nominativo nel database
:'( :'(
-
in sostanza il mio form sarebbe tipo questo
immobile___________ sito in via ___________ citta___________
nome proprietario_____________ cognome proprietario_____________ telefono________ email________ (e qui il campo di ricerca che cerca se il proprietario è inserito nella tabella e nello stesso tempo mi richiama i dati e li reinserisce nei campi per il salvataggio....
:-[ spero di essere stata chiara
-
o si potrebbe anche optare all'apertura di un'altra pagina di ricerca e poi il trasferimento dei dati
-
Forse ora ho capito meglio il problema.
Occorrono due tabelle, una anagrafica del cliente e l'altra con i dati dell'immobile.
Puoi popolare una dropdown del form con i dati dei clienti.
Quando è stato scelto un cliente con un javascript memorizzi il cf_id in una get nel URL del form e rilanci il form il quale quando recupera il valore della get ed è maggiore di 0 legge i dati dalla tabella cliente e assegna i valori ai campi.
Questa in sintesi la procedura.
-
non ho capito bene ... scusami potresti essere un poco + chiaro?? fino al drop ci siamo ...
-
Proprio oggi ho postato in questo post un esempio di gestione delle dropdown che potrà aiutarti.
http://forum.joomla.it/index.php/topic,95733.msg513419.html#new
Soffermati sul funzionamento della prima dropdown
1) viene popolata dalla tabella del database regioni
2) dopo che viene selezionata una voce è chiamata la funzione javascript che rilancia il form trasmettendo il valore del id della regione
3) a questo punto quando riapre il form puoi con del codice php rileggere i valori della tabella corrispondenti alla selezione ed assegnarli ai campi del form.
In sostanza fai una if che controlla il valore rimandato al form. Se è maggiore di 0 rileggi i dati dalla tabella corrispondenti al id della selezione.
Nel mio caso per rileggere il valore controllo l'elemento dell'array get
JRequest::getVar('regione',0,'GET','INT')
-
ciao vales ... per capire bene il funzionamento ho riprodotto all'interno del mio sito un form con le stesse condizioni del suggerimento che mi hai postato..
all'esecuzione del form mi restituisce questi 3 errori e i drop non funzionano
Warning: Invalid argument supplied for foreach() in /home/..../components/com_chronocontact/chronocontact.html.php(180) : eval()'d code on line 12
Warning: Invalid argument supplied for foreach() in /home/.../components/com_chronocontact/chronocontact.html.php(180) : eval()'d code on line 32
Warning: Invalid argument supplied for foreach() in /home/.../components/com_chronocontact/chronocontact.html.php(180) : eval()'d code on line 52
-
up
-
Non c'è bisogno di uppare,
dal tipo di errore penso che siano le query che non producono risultati validi.
-
ho trovato quello che mi serve......... il problema è farlo ???
http://www.joomlahost.it/dnshst/jm/create_user_priv.jsp
prova a scrivere il cap ... è il metodo di inserimento dati che mi serve....uguale uguale
come posso farlo?? (se posso farlo) ho tanta buona volontà.... :)
-
nessun consiglio??
-
Non ho capito se hai trovato la causa dell'errore del primo post. Altrimenti si gira a vuoto.
Dovresti postare il codice che hai inserito nel form.
-
ho trovato quello che mi serve......... il problema è farlo ???
http://www.joomlahost.it/dnshst/jm/create_user_priv.jsp
prova a scrivere il cap ... è il metodo di inserimento dati che mi serve....uguale uguale
come posso farlo?? (se posso farlo) ho tanta buona volontà.... :)
no Vales in questo indirizzo ho trovato quello che in teoria mi servirebbe... non la drop perchè se inserisco la drop mi devo creare altri campi nel form nel caso in cui il cliente ipotetico non sia presente nella banca dati.... ho optato qualche cosa con l'autocompletamento praticamente.... volevo sapere se è possibile farlo... e in qualche caso se c'è qualche buon consiglio e qualche buona guida da seguire....
il metodo che è usato in questa pagina che è quella di joomlahost è perfetto
allego degli esempi grafici per rendere meglio l'idea.... nel mio caso digitando il cognome mi dovrebbe restituire anche gli altri che sono già inseriti nel database.. premessa ... i dati sono tutti nella stessa tabella
grazie sempre
[allegato eliminato da un amministratore]
-
In quel form usano Jquery o ajax c'è da studiare quei linguaggi se vuoi quello. Io non sono ancora preparato su quei linguaggi.
Comunque credo non ti risolve il problema del proprietario che non è in archivio che va gestito in modo dedicato.
-
è praticamente un gestionale loro interno... che contro la mia volontà metteranno on line .... sempre per un uso amministrativo vedremo come posso fare....ma se dovesse venirti in mente qualche idea eccezionale.... fammelo sapere :)