ciao a tutti! spero proprio che qualcuno di voi riesca ad aiutarmi perchè non ho idea di quale sia il problema!
allora, io ho un form, questo form è fatto da un insieme di select che vengono riempite prendendo i valori dal database. a seconda di quello che si seleziona nella prima select io voglio che quella successiva si aggiorni da sola e mi dia solo i valori relativi alla mia prima select. per far questo ho usato ajax con jquery e funziona, il campo lo riempie nel modo giusto. il problema sta quando invio il form, mi dice campo "seconda select non inserito", in pratica non lo prende!
ecco il codice:
queste sono le mie due select
Codice PHP:
<tr> <td> <span class="need">*</span> Tipo di dispositivo </td>
<td> <select class="txt_input" name="device" id="device" onChange="load_protocol();">
'.arr_to_selopt_device($device_array,'').'
</select> <div class="desc">Selezionare il tipo di dispositivo da inserire</div> </td> </tr>
<tr> <td> <span class="need">*</span> Protocollo </td> <td>
<select class="txt_input" name="protocollo" id="protocollo">
'.arr_to_selopt_a($protocol_array,'').'
</select> <div class="desc">Selezionare il protocollo di comunicazione del dispositivo</div></td> </tr>
questa la chiamata ajax:
Codice PHP:
function load_protocol () {
var device = $(\'[name="device"]\').val();
$.ajax({
type:"POST",
url:"setup_ajax.php",
data:"device=" + device,
dataType: "html",
success:function(data){
$("#protocollo").html(data);
}
})
}
e questa la pagina che gestisce l'ajax:
Codice PHP:
<?php
require_once ('inc_top_admin.php');
require_once ('inc_funzioni_user_admin.php');
$admin=admin();
if ($admin) {
if (isset($_REQUEST['device'])) { $device=pulisci_db(trim($_REQUEST['device'])); } else { $device=''; }
if (strtolower(trim($device))=='contatore_prod' OR strtolower(trim($device))=='contatore_enel' OR strtolower(trim($device))=='contatore_prod_e_enel') { $device='contatore'; }
$result = mysql_query ("SELECT nome FROM protocolli WHERE tipo='$device';") or die(mysql_error());
while ($row=mysql_fetch_array($result)) {
echo '<option value=\''.$row["id"].'\'>'.$row["nome"].'</option>';
}
}
?>