Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Problemi con checkbox e funzione Javascript

    Salve a tutti, il mio problema è il seguente.

    Nella mia prima pagina del sito, è presente uno script in php contenente 3 immagini (A, B e C), rappresentanti tre prodotti: cliccando su una di queste tre immagini, l'utente viene proiettato alla pagina successiva, nella quale vi è una checkbox contenente i nomi dei prodotti e dei campi per l'inserimento di dati.

    Naturalmente, se l'utente clicca sul prodotto B verrà mandato alla pagina successiva contente il prodotto B già selezionato all'interno della checkbox. Inoltre, per ogni prodotto appariranno dei campi diversi. Fino a qua nessun problema.

    Quello ke non riesco a capire è come mai selezionando manualmente nella seconda pagina i prodotti all'interno della checkbox (qundi non selezionando il prodotto dalla prima pagina) i campi non cambino. la funzione in Javascript è la seguente:

    codice:
    <script language="JavaScript" type="text/javascript">
    <!--
    	function Update_MoreFields() {
    
    		mainfield = document.getElementById('pr3');
    		morefield = document.getElementById('serial');
    		trfield1 = document.getElementById('serial'+'_morefield_1');
    		trfield2 = document.getElementById('serial'+'_morefield_2');
    		
    		if (mainfield && morefield && trfield1 && trfield2) {
    			if (mainfield.checked) {
    				trfield1.style.display = (document.all && !window.opera)?'block':'table-row';
    				trfield2.style.display = (document.all && !window.opera)?'block':'table-row';
    				
    			} else {
    				trfield1.style.display = 'none';
    				trfield2.style.display = 'none';
    				morefield.value = '';
    			};
    		};
    
    	};
    	Update_MoreFields();
    -->
    </script>

    Questa funzione dovrebbe essere richiamata con la selezione del prodotto 'pr3'. I campi aggiuntivi per il prodotto sono:
    codice:
    <tr id="serial_morefield_1" style="display:none;">
                      <td nowrap="nowrap"><font size="-1">Old serial:
    
                        [/b]</font></td>
                      <td width="212" height="40" nowrap="nowrap" style="border-color:#009999; background-color:#EBFEEC;"> 
                        <font size="-1"> 
                        <input name="serial" type="text" class="form" id="serial" size="27" maxlength="50" />
    
                         </font></td>
                      <td width="10"><font size="-1"></font></td>
                      <td width="235"><font size="-1"></font></td>
                    </tr>
    
                    <tr id="serial_morefield_2" style="display:none;"> 
    					<td colspan="1"></td>
                      <td colspan="3" class="SmallHint">^ This 
                        is the serial of your old version: It is only necessary if you are purchasing the new! </td>
                    </tr>
    La parte in php della checkbox è la seguente:

    codice:
    				<input type="checkbox" name="pr<?php echo $n; ?>" id="pr<?php echo $n; ?>" value="1" <?php echo $checked; ?> onClick="Update_AlternativeProducts('pr<?php echo $n; ?>', '<?php echo $prCode; ?>');CalculateTotal();Update_MoreFields();" />
    
                    <td><font size="-1"><?php echo $prTitle; ?></font></td>
                    <td align="right"><font size="-1"></font></td>
                    <td align="right"><font size="-1"><?php echo $prPrice; ?></font></td>
                    <td align="right"><font size="-1"></font></td>
                    <td align="right"><font size="-1"><?php echo $prQuantity; ?></font></td>
                    <td align="right"><font size="-1"></font></td>
                    <td align="right"><font size="-1"><?php echo $nettotal; ?></font></td>
                  </tr>
    <?php if ($prDetails != '') { ?>
    			  <tr>
                    <td></td>
                    <td class="SmallHint"><?php echo $prDetails; ?></td>
                    <td align="right"><font size="-1"></font></td>
                    <td align="right"></td>
                    <td align="right"><font size="-1"></font></td>
                    <td align="right"></font></td>
                    <td align="right"><font size="-1"></font></td>
                    <td align="right"><font size="-1"></font></td>
                  </tr>
    <?php } ?>
    Riassumendo il mo problema avviene solamente quando si spunta manualmente nella checkbox,
    mentre quando si seleziona un oggetto da una pagina all'altra i campi personalizzati vengono mostrati in maniera esatta.

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Prova cosi:
    codice:
    function Update_MoreFields() {
    
    		mainfield = document.getElementsByTagName('input');// rilevo elemento input 
    		morefield = document.getElementById('serial');
    		trfield1 = document.getElementById('serial'+'_morefield_1');
    		trfield2 = document.getElementById('serial'+'_morefield_2');
    		
    		if (mainfield && morefield && trfield1 && trfield2) {
    for(i=0; i<mainfield.length; i++){//scorro tutti gli input
    			if (mainfield[i].getAttribute("type") == 'checkbox' && mainfield[i].checked) {// identifico gli elementi checkbox selezionati
    				trfield1.style.display = (document.all && !window.opera)?'block':'table-row';
    				trfield2.style.display = (document.all && !window.opera)?'block':'table-row';
    				
    			} else {
    				trfield1.style.display = 'none';
    				trfield2.style.display = 'none';
    				morefield.value = '';
    			};
    };
    		};
    
    	};
    	Update_MoreFields();
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Ti ringrazio per la tua risposta, però non funziona...anzi, ora non mostra automaticamente i campi aggiuntivi nemmeno selezionando il prodotto dalla prima pagina del sito....
    altri suggerimenti..??

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Posta un link alla pagina pubblica
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.