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.