Chronoforms, recupero nome form

navajo75

Utente Attivo
16 Mar 2012
103
1
18
Buongiorno a tutti,

con Joomla 2.5, sto tentando di rifare un sito che sviluppai 3 anni fa.
In esso c'è un form di registrazione utente abbastanza complesso ed attraverso Chronofroms 4 lo vorrei replicare.
La logica mi ha portato a pensare che fosse sufficiente caricare i Javascript che mi permettevano di avere alcune fuzionalità e con delle piccole modifiche ottenere lo stesso risultato.
In effetti ha funzionato con la disabilitazione di alcune chekcbox, ma non riesco a replicare le select dinamiche.
Ho quattro select (nazione, regione, provincia e comune) e tranne la prima, le altre si popolano a seconda della scelta fatta.
Se la nazionalità non è italiana, automaticamente le altre tre select si disabilitano.
Ho una funzione Javascript che mi permette di ottenere ciò:

Codice:
function disab(nazione) {
        switch(nazione) {
      case"Afghanistan":
            document.getElementById('ChronoContact_form_registrazione').regione.disabled=true; 
            document.getElementById('ChronoContact_form_registrazione').capoluogo.disabled=true;
            document.getElementById('ChronoContact_form_registrazione').comune.disabled=true;
            break;
}}

Poi nell'HTML, la richamo nella seguente maniera:

Codice:
<select size="1" class="" title="" name="nazione" onchange="disab(this[this.selectedIndex].value)">

Dove sto sbagliando?
Grazie in anticipo a tutti coloro che vorranno aiutarmi.

Saluti,
Marco
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
In questo modo mi stai dicendo che hai 3 elementi nel DOM con lo stesso id e questo non è possibile.
ChronoContact_form_registrazione

Con getElementById devi selezionare ogni select e non l'intero form.
Prova e fammi sapere.
 

navajo75

Utente Attivo
16 Mar 2012
103
1
18
Codice:
function disab(nazione) {
        switch(nazione) {
      case"Afghanistan":
	        document.getElementById('regione').disabled=true; 
            document.getElementById('capoluogo').disabled=true;
            document.getElementById('comune').disabled=true;
            break;
		}}

Intendi così?
Ho provato, ma non funziona.

Saluti,
Marco
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Sicuro che quei campo di input hanno come ID 'regione', 'capoluogo' e 'comune'?
 

navajo75

Utente Attivo
16 Mar 2012
103
1
18
Assolutamente certo.
Con Joomla e Chronoforms sto rifacendo un form di registrazione di un sito da me pubblicato 3 anni fa. Lì tutto funziona.
Se vuoi e pensi possa aiutare la discussione, posso postare il link al form di registrazione del mio sito.

Saluti,
Marco
 

navajo75

Utente Attivo
16 Mar 2012
103
1
18
Il problema è proprio questo.
Su quel sito funziona tutto e quel form di registrazione lo voglio replicare in Joomla, usando Chronoforms.
E' qui che non riesco.
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Guarda ho fatto questa semplice prova per vedere se funziona e va, prova a vedere cosa c'è di diverso nel tuo codice facendo attenzione alla differenza tra ID e NAME:
HTML:
<!DOCTYPE html>
<html>
<body>
<script>
function disab(nazione) {
        switch(nazione) {
            case"ciao":
	    document.getElementById('regione').disabled=true; 
            document.getElementById('capoluogo').disabled=true;
            document.getElementById('comune').disabled=true;
            break;
        }
}
</script>

<select size="1" class="" title="" id="nazione" onchange="disab(this.value)">
<option> ciao </option>
<option> asd </option>
<option> sdf</option>
</select>

<select size="1" class="" title="" id="regione">
<option> regione </option>
<option> asd </option>
<option> sdf</option>
</select>

<select size="1" class="" title="" id="capoluogo">
<option> capoluogo </option>
<option> asd </option>
<option> sdf</option>
</select>

<select size="1" class="" title="" id="comune">
<option> comune</option>
<option> asd </option>
<option> sdf</option>
</select>
</body>
</html>
 

navajo75

Utente Attivo
16 Mar 2012
103
1
18
Ciao,

innanzitutto grazie per la risposta, ma si comporta alla stessa maniera del codice che ho già io.
Cioè... se metto il codice che mi hai dato tu in una pagina HTML, con Mozilla, quando scelgo la option ciao nella select nazione, le altre tre si disabilitano.
Se creo con Chronoforms lo stesso identico form e poi aggiungo la funzione javascript nell'evento on load, smette di funzionare.

Perchè?

Saluti,
Marco
 

navajo75

Utente Attivo
16 Mar 2012
103
1
18
Ti ringrazio tanto dell'aiuto e non è certamente una cosa dovuta, ma permettimi di farti una domanda...
... conosci Chronoforms?
Questo componente ha un evento che si chiama On Load e che da quindi la possibilità di settare al suo interno un JS. Quindi, quando si carica la pagina che l'utente richiama da browser, è come se al suo interno ci fosse la funzione Javascript.
E' chiaro poi che quella funzione, internamente all'HTML, la richiami all'onchange.
Io devo uscire da questo problema, altrimenti non posso andare avanti con il form di registrazione.
Apprezzo veramente il tuo tentativo di aiutare, anche perchè sei stato l'unico, ma ti prego di suggerire qualcosa, solo se conosci realmente Chronoforms ed il suo funzionamento.

Grazie mille.
Buona domenica,
Marco
 

navajo75

Utente Attivo
16 Mar 2012
103
1
18
Finalmente ho capito l'arcano.
Nella select nazione, sull'evento onChange, io chiamo tre funzioni javascript

Codice:
<select size="1" class="" title="" name="nazione" onChange="scrivi_codice_nazione();disab(this[this.selectedIndex].value);set_nazione()" id="nazione">

sul sito che ho pubblicato va tranquillamente, mentre su Joomla con Chronoforms, funziona solo chiamando una funzione. Ad esempio, se voglio disabilitare le select reione, capoluogo e comune, nel caso in cui si scelga una nazione diversa dall'Italia, dovrò utilizzare il segunete JS

Codice:
function disab(nazione) {
        switch(nazione) {
            case"Afghanistan":
	    document.getElementById('regione').disabled=true; 
            document.getElementById('capoluogo').disabled=true;
            document.getElementById('comune').disabled=true;
            break;
        }
}

e richiamare in la suddetta funzione nell'HTML, alla seguente maniera:

Codice:
<select size="1" class="" title="" name="nazione" onChange="disab(this[this.selectedIndex].value)" id="nazione">

Il problema è che io ho bisogno di utilizzare anche le altre due funzioni: 1) scrivi_codice_nazione(); e 2) set_nazione();

Qualcuno sa come far funzionare la chiamata a tre funzioni nell'onChange di una select ed utilizzando Joomla e Chronoforms?

Grazie.
Saluti,
Marco
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Queste altre due funzioni le devi richiamare quando chiami disab?
 

navajo75

Utente Attivo
16 Mar 2012
103
1
18
Intendi onchange="disab(); altra();altra()" ?
Se intendi così, ho giá provato; funziona disab, ma non le altre due. Funziona sempre solo la prima che metti.

Saluti,
Marco
 
Discussioni simili
Autore Titolo Forum Risposte Data
N Reset password e remind user con Chronoforms Joomla 0
N Override com_user e Chronoforms Joomla 0
O Recupero valori da listato Javascript 0
S problema con recupero dati tabella mysql PHP 2
D Recupero dati da HDD esterno Hardware 0
T foreach e fetchAll dove recupero solo l'ultimo record PHP 5
T recupero valori select multipla da android Javascript 3
W Recupero password Classic ASP 16
L Recupero dati da SSD Windows 10 prof Windows e Software 2
S [PHP] Recupero nome immagine da Form con input file PHP 3
Sergio Unia Recupero dati da una vecchia versione MySql [Risolto] MySQL 4
bubino8 [PHP] Recupero id autoincrement PHP 8
I Recupero accesso pannello di controllo dominio Leggi, Normative e Fisco 2
S [PHP] form con metodo get e recupero id PHP 4
Emix [PHP] Check - Select e recupero variabili PHP 40
bubino8 [PHP] Recupero input senza invio PHP 1
U [PHP] Selezione con menu a tendina e recupero selezione PHP 5
L Problema con recupero dati in PHP cURL e JAVA con server PHP 1
P Javascript o Jquery - recupero testo (oltre al valore) di una select Javascript 5
S [PHP] Recupero più dati da form realizzata ciclo FOR PHP 5
P [PHP] Recupero dati da un array PHP 5
P [Javascript] Aiuto per recupero variabili da script Javascript 10
F Recupero dati json Ajax 2
D jquery per recupero variabile Javascript 4
A Form recupero campo Radio PHP 7
I tabella con ciclo, recupero dati PHP 3
P Recupero variabile Ajax 5
Z recupero e stampa a video di immagini da database PHP 3
Emix Problema recupero Dati da MYSQL PHP 20
L Recupero dati da tutte le tabelle nel db MySQL 4
Alessio Gebbia [PHP] Recupero dati da un WHILE ! PHP 3
N Recupero indirizzo mail PHP 1
M recupero dati... PHP 1
filomeni Recupero anchor Javascript 13
P Recupero dati per select form PHP 9
S Recupero valori da tabella tramite id colonna Javascript 1
L Recupero dati form in tabella e invio con ajax. Problemino jQuery 1
L PHP e recupero risultati da query PHP 2
L PHP e recupero risultati da query PHP 11
felino HDD 2.5'' caduto a terra: possibile recupero dei dati al suo interno Hardware 8
D recupero valore radio button PHP 1
Emix Recupero dati da una tabella e spostarli in un altra PHP 11
A Problema recupero valori da select con chiamata ajax Ajax 1
neo996sps Non recupero il value in un select popolato da DB PHP 4
blips Recupero valori select Javascript 1
H Recupero password dimenticata PHP 0
C Recupero dati da pagina esterna PHP 5
M recupero dati da db PHP 6
I Recupero numero file uploadati php PHP 1
T Problema con form e recupero dati da mysql PHP 17

Discussioni simili