Back to top

Autore Topic: [RISOLTO] Problema inspiegabile Chronoforms nidificati  (Letto 2144 volte)

Offline darinic

  • Esploratore
  • **
  • Post: 99
    • Mostra profilo
Ciao a tutti. Scusate ma sto diventando letteralmente pazzo..sono due ore che non riesco a capire dove possa essere il problema. La questione è abbastanza semplice. Fissato il seguente form HTML:
Codice: [Seleziona]
<div class="form_item">
  <div class="form_element cf_heading">
    <h1 class="cf_text">Richiesta Informazioni</h1>
  </div>
  <div class="cfclear">&nbsp;</div>
</div>

<div class="form_item">
  <div class="form_element cf_text"> <span class="cf_text">Compilare il seguente form o scrivere all'indirizzo <a href="mailto:info@arteziapina.it?subject=Richiesta Informazioni">info@arteziapina.it</a> se si è interessati all'acquisto di uno o più articoli mostrati in galleria, o anche solo per semplici informazioni. </span> </div>
  <div class="cfclear">&nbsp;</div>
</div>

<div class="form_item">
  <div class="form_element cf_textbox">
    <label class="cf_label" style="width: 150px;">Nome</label>
    <input class="cf_inputbox required" maxlength="150" size="30" title="Campo obbligatorio" id="text_2" name="text_2" type="text" />
 
  </div>
  <div class="cfclear">&nbsp;</div>
</div>

<div class="form_item">
  <div class="form_element cf_textbox">
    <label class="cf_label" style="width: 150px;">Indirizzo e-mail</label>
    <input class="cf_inputbox required validate-email" maxlength="150" size="30" title="" id="text_15" name="text_15" type="text" />
 
  </div>
  <div class="cfclear">&nbsp;</div>
</div>

<div class="form_item">
  <div class="form_element cf_textbox">
    <label class="cf_label" style="width: 150px;">Telefono</label>
    <input class="cf_inputbox required validate-number" maxlength="150" size="30" title="" id="text_14" name="text_14" type="text" />
  </div>
  <div class="cfclear">&nbsp;</div>
</div>

<div class="form_item">
  <div class="form_element cf_dropdown">
    <label class="cf_label" style="width: 150px;">Seleziona la categoria di interesse</label>
    <select class="cf_inputbox" id="select_9" size="1" title=""  name="select_9" onfocus="fillCategory();" onchange="SelectSubCat();" >
    <option value="">Scegli l'Opzione</option>

    </select>
   
  </div>
  <div class="cfclear">&nbsp;</div>
</div>

<div class="form_item">
  <div class="form_element cf_dropdown">
    <label class="cf_label" style="width: 150px;">Selezionare l'Articolo di interesse</label>
    <select class="cf_inputbox" id="select_10" size="1" title=""  name="select_10">
    <option value="">Scegli l'opzione</option>
     
    </select>
    <a class="tooltiplink" onclick="return false;"><img height="16" border="0" width="16" class="tooltipimg" alt="" src="components/com_chronocontact/css/images/tooltip.png"/></a>
                <div class="tooltipdiv">Selezionare l'Articolo di interesse :: Selezionare l'opzione NUOVO ARTICOLO se si vuole proporre un articolo non presente in galleria. In questo caso descrivere accuratamente il tipo di articolo e le sue caratteristiche all'interno del campo Messaggio</div>
  </div>
  <div class="cfclear">&nbsp;</div>
</div>

<div class="form_item">
  <div class="form_element cf_textbox">
    <label class="cf_label" style="width: 150px;">Oggetto del messaggio</label>
    <input class="cf_inputbox required" maxlength="150" size="30" title="Campo obbligatorio" id="text_10" name="text_10" type="text" />
 
  </div>
  <div class="cfclear">&nbsp;</div>
</div>

<div class="form_item">
  <div class="form_element cf_textarea">
    <label class="cf_label" style="width: 150px;">Messaggio</label>
    <textarea class="cf_inputbox required" rows="6" id="text_19" title="Campo obbligatorio" cols="25" name="text_19"></textarea>
   
  </div>
  <div class="cfclear">&nbsp;</div>
</div>

<div class="form_item">
  <div class="form_element cf_button">
    <input value="Invia" name="button_21" type="submit" />
  </div>
  <div class="cfclear">&nbsp;</div>
</div>

con il seguente codice inserito nel Form JavaScript il form funziona correttamente, ovvero cliccando su "Seleziona la Categoria di interesse" appaiono correttamente le varie categorie e cliccando poi su "Seleziona l'Articolo d'interesse" appaiono correttamente i relativi articoli (diversi per ciascuna categoria):

Codice: [Seleziona]
//questo è il codice da inserire nella TAB Form Code sezione javascript

function fillCategory(){
removeAllOptions(document.getElementById('ChronoContact_Form_Contatti').select_9);


addOption(document.getElementById('ChronoContact_Form_Contatti').select_9, '1', 'Quadri');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_9, '2', 'Centritavola');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_9, '3', 'Cuscini');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_9, '4', 'Biancheria da Bagno');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_9, '5', 'Biancheria da Cucina');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_9, '6', 'Oggettistica varia per la casa');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_9, '7', 'Decorazioni natalizie');
}

function SelectSubCat(){
// Funzione chiamata dopo la selezione della Sezione - ON or after selection of category this function will work

removeAllOptions(document.getElementById('ChronoContact_Form_Contatti').select_10);
//addOption(document.getElementById('ChronoContact_Form_Contatti').select_10, "", "Seleziona", "");

// Raccoglie tutti gli elementi della categoria per id - Collect all element of subcategory for various id


 if (document.getElementById('ChronoContact_Form_Contatti').select_9.value == '1'){
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'1', 'Agrumi di Sicilia');
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'2', 'Scalinata di Taormina');

}
 if (document.getElementById('ChronoContact_Form_Contatti').select_9.value == '2'){
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'3', 'Centrino Mimosa');
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'4', 'Centrino Caltagirone');

}
 if (document.getElementById('ChronoContact_Form_Contatti').select_9.value == '3'){
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'5', 'Cuscino1');
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'6', 'Cuscino2');
}

 if (document.getElementById('ChronoContact_Form_Contatti').select_9.value == '4'){
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'7', 'Trittico di Tulipani');
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'8', 'Asciugamano e ospite Margherite');
}
 if (document.getElementById('ChronoContact_Form_Contatti').select_9.value == '5'){
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'9', 'Strofinacci Fantasia');
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'10', 'Salvamacchia');
}
 if (document.getElementById('ChronoContact_Form_Contatti').select_9.value == '6'){
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'11', 'Farfallina variopinta');
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'12', 'Piatto Girasole');
}

if (document.getElementById('ChronoContact_Form_Contatti').select_9.value == '7'){
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'13', 'Abbraccio degli angeli');
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'14', 'Cuscino Bianco Natale');
}
}
//////////////////

function removeAllOptions(selectbox) {
   var i;
   for(i=selectbox.options.length-1;i>=1;i--)
   {
      selectbox.options[i]=null;
      //selectbox.remove(i);
   }
}


function addOption(selectbox, value, text ) {
   var optn = document.createElement("option");
       
        optn.text = text;
   optn.value = value;

   selectbox.options.add(optn);
          //selectbox.appendChild(optn,where);

}

Se però poi completo il codice JavaScript aggiungendo la lista completa degli articoli (facendo quindi banalmente dei copia e incolla e stando attento a tenere la numerazione corretta e a non dimenticare parentesi), il form non funziona più. Ovvero se clicco su "Selezione Categoria di interesse" non appaiono, come prima, le categorie, ma solo Scegli l'Opzione"
Codice: [Seleziona]
//questo è il codice da inserire nella TAB Form Code sezione javascript

function fillCategory(){
removeAllOptions(document.getElementById('ChronoContact_Form_Contatti').select_9);


addOption(document.getElementById('ChronoContact_Form_Contatti').select_9, '1', 'Quadri');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_9, '2', 'Centritavola');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_9, '3', 'Cuscini');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_9, '4', 'Biancheria da cucina');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_9, '5', 'Biancheria da bagno');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_9, '6', 'Oggettistica varia per la casa');
addOption(document.getElementById('ChronoContact_Form_Contatti').select_9, '7', 'Decorazioni natalizie');
}

function SelectSubCat(){
// Funzione chiamata dopo la selezione della Sezione - ON or after selection of category this function will work

removeAllOptions(document.getElementById('ChronoContact_Form_Contatti').select_10);
//addOption(document.getElementById('ChronoContact_Form_Contatti').select_10, "", "Seleziona", "");

// Raccoglie tutti gli elementi della categoria per id - Collect all element of subcategory for various id


 if (document.getElementById('ChronoContact_Form_Contatti').select_9.value == '1'){
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'1', 'Cornice di vetro FOGLIA ORO');
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'2', 'Quadro GIRASOLI E LIMONI');
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'3', 'Quadro SCALINATA DI TAORMINA');
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'4', 'Quadro AGRUMI DI SICILIA');

}
 if (document.getElementById('ChronoContact_Form_Contatti').select_9.value == '2'){
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'5', 'Centrino CALTAGIRONE');
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'6', 'Centrino ROSA FIORITA');
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'7', 'Centrino MIMOSA');
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'8', 'Centrotavola ORGANZA');
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'9', 'Trittico TULIPANI');

}
 if (document.getElementById('ChronoContact_Form_Contatti').select_9.value == '3'){
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'10', 'Cuscino GIRASOLE');
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'11', 'Cuscino CALCIO CATANIA');
}

 if (document.getElementById('ChronoContact_Form_Contatti').select_9.value == '4'){
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'12', 'Centrotavola e Grembiule FRAGOLE E MARGHERITE');
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'13', 'Portapane GRANO E FIORI');
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'14', 'Salvamacchia PRIMAVERA');
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'15', 'Salvamacchia e Grembiule GIRASOLE');
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'16', 'Strofinacci FANTASIA');
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'17', 'Tovaglia da tavola AGRUMI DI SICILIA');
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'18', 'Tovaglia da tavola RUSTICANA');
}

 if (document.getElementById('ChronoContact_Form_Contatti').select_9.value == '5'){
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'19', 'Trittico da bagno TULIPANI');
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'20', 'Asciugamano GLICINE');
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'21', 'Asciugamano MARGHERITE');
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'22', 'Asciugamano ROSETO');
}

 if (document.getElementById('ChronoContact_Form_Contatti').select_9.value == '6'){
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'23', 'Appendiabiti FIORI DI PRIMAVERA');
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'24', 'Barattolo da cucina FRAGOLATO');
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'25', 'Bomboniera FARFALLINA');
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'26', 'Piatto GIGLIO');
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'27', 'Piatto GIRASOLE');
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'28', 'Portamestolo LIMONCELLO');
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'29', 'Portapresine da cucina');
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'30', 'Presine da cucina');
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'31', 'Soprammobile VETRO ROSATO');
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'32', 'Tegola GIRASOLI');
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'33', 'Vassoio LIMONI');
}

if (document.getElementById('ChronoContact_Form_Contatti').select_9.value == '7'){
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'34', 'Centro natalizio NOTTE D'INVERNO');
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'35', 'Cuscino BIANCO NATALE');
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'36', 'Palla natalizia ABBRACCIO DEGLI ANGELI');
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'37', 'Palla natalizia PAESAGGIO DI NATALE');
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'38', 'Piatto natalizio STELLA DI NATALE');
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'39', 'Quadretto AUGURI DI NATALE');
 addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'40', 'Tovaglia natalizia STELLE DI NATALE');
}
}
//////////////////

function removeAllOptions(selectbox) {
   var i;
   for(i=selectbox.options.length-1;i>=1;i--)
   {
      selectbox.options[i]=null;
      //selectbox.remove(i);
   }
}


function addOption(selectbox, value, text ) {
   var optn = document.createElement("option");
       
        optn.text = text;
   optn.value = value;

   selectbox.options.add(optn);
          //selectbox.appendChild(optn,where);

}

Sono un po' stanco e quindi è possibile che mi sia sfuggito qualcosa e controllando e ricontrollando non riesco proprio a trovarlo...ma a me pare tutto assolutamente corretto.
Qualcuno ha modo di provare il codice e verificare?
Ve ne sarei immensamente grato, ho una scadenza a breve e ho bisogno di aiuto.

Grazie mille
« Ultima modifica: 19 Nov 2010, 15:38:32 da darinic »

Offline darinic

  • Esploratore
  • **
  • Post: 99
    • Mostra profilo
Re:Problema inspiegabile Chronoforms nidificati
« Risposta #1 il: 19 Nov 2010, 15:38:01 »
Trovato l'errore...un'apostrofo alla fine D'INVERNO che mi incasinava tutto >:(
Codice: [Seleziona]
addOption(document.getElementById('ChronoContact_Form_Contatti').select_10,'34', 'Centro natalizio NOTTE D'INVERNO');
Quanta pazienza che ci vuole..ho perso 3 ore per questa fesseria... :-[

Offline ilvanni

  • Global Moderator
  • Instancabile
  • ********
  • Post: 7038
  • Sesso: Maschio
  • Giovanni Vacca
    • Mostra profilo
Re:[RISOLTO] Problema inspiegabile Chronoforms nidificati
« Risposta #2 il: 19 Nov 2010, 23:23:32 »
Bravo ad aver condiviso la soluzione, ciao e buona permanenza nel forum!

 



Web Design Bolzano Kreatif