Select dinamiche - stampa ID e non il valore

leftist73

Utente Attivo
18 Ott 2006
73
0
0
Ciao a tutti,
in giro sulla rete ho trovato un bellissimo script che mi permette di avere 2 gruppi di Select dinamiche gestite con Ajax e Php.
Un gruppo da tre:
- Regioni
- Province
- Comuni

ed un gruppo da due
- Categorie professionali
- Ruolo Professionale

Ovviamente tutto legato da tabelle in un Db Mysql.

Il problema e che nei campi mi stampa il valore dell'ID e non il valore della selezione.
Ad esempio: invece di Lazio - Roma - Agosta mi viene segnato nei campi 5 - 8 - 15

Vi posto il codice cosi forse sarò più chiaro:

FORM:
<select name="regione_domicilio" id="regione_domicilio" onchange="loadList('provincia_domicilio', getSelected(this));clearList('comune_domicilio')" style="width:500px" class="input">
<option value="0">--- Selezionare Regione di Domicilio ---</option>
</select></div></td></tr>
<tr valign="baseline" bgcolor="efefef">
<td align="right"><div align="right" class="Stile11">Provincia Domicilio:</div></td>
<td bgcolor="efefef"><div align="left">
<select name="provincia_domicilio" id="provincia_domicilio" onChange="loadList('comune_domicilio', getSelected(this))" style="width:500px" class="input">
<option value="0">--- Selezionare Provincia di Domicilio ---</option>
</select></div></td></tr>
<tr valign="baseline" bgcolor="efefef">
<td align="right"><div align="right" class="Stile11">Comune Domicilio:</div></td>
<td bgcolor="efefef"><div align="left">
<select name="comune_domicilio" id="comune_domicilio" style="width:500px" class="input">
<option value="0">--- Selezionare Comune di Domicilio ---</option>
</select>

<select name="categorie_professionali" id="categorie_professionali" onChange="loadList('ruolo_professionale', getSelected(this))" style="width:500px" class="input"><option value="0">--- Selezionare Categoria Professionale ---</option>
</select></div></td></tr>
<tr>
<td align="right" valign="middle" bgcolor="efefef"><div align="right" class="Stile15"><span class="Stile47 Stile74 Stile82"><span class="Stile74">Ruolo professionale:</span></span></div></td><td align="left" valign="middle" bgcolor="efefef"><div align="left">
<select name="ruolo_professionale" id="ruolo_professionale" style="width:500px" class="input"><option value="0">--- Selezionare Ruolo Professionale ---</option>
</select>

</html>
<script type="text/javascript">
//<![CDATA[
loadList('categorie_professionali', 0);
loadList('regione_domicilio', 0);
var queueWatcher = setInterval(checkQueue, 200);
//]]>
</script>


REQUEST.PHP
<?php
require 'dbconfig.php';
$conn = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) or die;
mysql_select_db(DB_NAME) or die;
//I valori in input vanno verificati
//id deve essere un valore numerico
$pid = (int)$_REQUEST['id'];
//maschera eventuali caratteri speciali in table
$tb = mysql_real_escape_string($_REQUEST['table'], $conn);

switch($tb) {
case 'categorie_professionali':
$sql="SELECT id, categoria_professionale FROM `$tb` ORDER BY categoria_professionale";
break;
case 'ruolo_professionale':
$sql="SELECT id, categoria_professionale FROM `$tb` WHERE id_categorie_professionali=$pid ORDER BY categoria_professionale";
break;
case 'regione_domicilio':
$sql="SELECT id, regione_domicilio FROM `$tb` ORDER BY regione_domicilio";
break;
case 'provincia_domicilio':
$sql="SELECT id, provincia_domicilio FROM `$tb` WHERE id_regione_domicilio=$pid ORDER BY provincia_domicilio";
break;
case 'comune_domicilio':
$sql="SELECT id, comune_domicilio FROM `$tb` WHERE id_provincia_domicilio=$pid ORDER BY comune_domicilio";
break;

}
//Il primo elemento della risposta è il nome della tabella (= attributo ID del tag select)
$out="$tb;";
if($result = mysql_query($sql, $conn)) {
while ($row = mysql_fetch_row($result)) {
$out .= $row[0] . '|' . $row[1] . ';';
}
}
//Rimuove il carattere ; in coda
echo rtrim($out, ';');
?>


LISTS.JS
var xmlHttp = getXmlHttpObject();
var busy = false;
var requests = new Array();

function checkQueue() {
if(!busy && requests.length > 0) {
sendRequest(requests.shift());
}
}
function sendRequest(req) {
busy = true;
xmlHttp.open('GET', req, true);
xmlHttp.onreadystatechange = stateChanged;
xmlHttp.send(null);
}
function loadList(tb, id){
requests.push('request.php?table='+tb+'&id='+id);
}
function clearList(listId) {
var select = document.getElementById(listId);
//Elimina i tag options tranne il primo (--- Selezionare xxx ---)
while (select.options.length > 1) {
select.remove(1);
}
}
function addOption(select, value, text) {
//Aggiunge un elemento <option> ad una lista <select>
var option = document.createElement("option");
option.value = value,
option.text = text;
try {
select.add(option, null);
} catch(e) {
//Per Internet Explorer
select.add(option);
}
}
function getSelected(select) {
//Ritorna il valore dell'elemento <option> selezionato in una lista
return select.options[select.selectedIndex].value;
}
function stateChanged() {
if(xmlHttp.readyState == 4) {
busy = false;
//Stato OK
if (xmlHttp.status == 200) {
var resp = xmlHttp.responseText;

if(resp) {
//Le coppie di valori nella striga di risposta sono separate da ;
var values = resp.split(';');
//Il primo elemento è l'ID della lista.
var listId = values.shift();
var select = document.getElementById(listId);
clearList(listId);
var limit = values.length;

for(i=0; i < limit; i++) {
var pair = values.split('|');
//aggiunge un elemento <option>
addOption(select, pair[0], pair[1]);
}
}
}
}
}

function getXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}


Vi prego di aiutarmi, sono certo che è una sciocchezza, ma sono giorni che ci sbatto il cranio!!

Grazie
 
Discussioni simili
Autore Titolo Forum Risposte Data
L Select Dinamiche...da txt? PHP 3
eraclio666 [PHP] 2 SELECT DINAMICHE PHP 8
G [Javascript] select dinamiche Javascript 0
H [PHP] Select dinamiche : regioni province comuni PHP 2
H select dinamiche php mysql PHP 4
H problema con select dinamiche e javascript Javascript 0
W Select dinamiche PHP 3
criric Select dinamiche : regioni province comuni Snippet PHP 28
S Select dinamiche concatenate Ajax 8
F Problema select dinamiche con php e jquery jQuery 1
Z Select dinamiche PHP MySQL Javascript PHP 1
R select dinamiche che riportano valori in una textarea. Javascript 8
M select dinamiche con Jquery e php jQuery 9
V Select dinamiche in php PHP 1
F Select Dinamiche in fase di modifica Classic ASP 1
L Aiuto per select dinamiche in asp Classic ASP 3
F Select dinamiche con ASP & AJAX Ajax 11
A select dinamiche, errore assurdo, non compare la terza select Javascript 0
J Select automatiche o dinamiche PHP 3
L Ripetere Campi disabilitando input in riferimento ad un valore della select jQuery 0
otto9due Ordinare option di una select Javascript 5
W MySQL ciclo in SELECT MySQL 0
W MySQL SELECT list dinamica MySQL 0
M Select Option dentro una Table jQuery 2
G Colorare menu select attraverso ricerca php PHP 0
L problema con query select PHP 2
F menù select dinamico da db in php PHP 3
D popolare campi tra th alla select PHP 36
M Estrarre valore con SELECT COUNT PHP 0
M Creare un campo input select quantità di un numero intero prelevato dal db PHP 3
E Php select option e ajax PHP 23
R Select concatenata che non funziona la seconda volta Ajax 3
L select join e sottrazione punti PHP 13
L input dati con inser into select ? PHP 4
V hierarchy-select jQuery 0
Emix Select concatenate php sql ajax PHP 2
F query e form con select multipla PHP 17
T recupero valori select multipla da android Javascript 3
J php, scegliere autista da select e mostrare se ha fatto un incidente PHP 8
Tommy03 Select in ordine per numero di record MySQL 7
T problema con select dinamica con jquery Javascript 0
J Far comparire e scomparire un div con un select Javascript 1
M Opzioni select da 1 a 200 PHP 0
I Fatal error: Query Failed! SQL: SELECT * INTO OUTFILE PHP 1
C input in sostituzione della select PHP 2
G Insert into select - Aiuto MySQL 0
max1974 autocomplete trigger select jQuery 0
X [Select] Valori chiave non presenti in un'altra tabella MySQL 2
M Estrarre dati da una select HTML PHP 3
MarcoGrazia jquery validate, necessità di validare almeno un elemento select su due jQuery 1

Discussioni simili