Select dinamiche con Ajax e PHP

Buon pomeriggio a tutti,

ho trovato un link molto interessante in rete http://sviluppare-in-rete.blogspot.com/2007/12/ajax-liste-selezione-dinamiche.html.

Sto tentando di modificarlo in modo tale che le select siano 3, regioni, province e comuni,e non due come nell'esempio.

Nel file request.php ho questo:

<?php

require 'dbconfig.php';

$conn = mysql_connect('localhost', 'luca', '071080281276') or die;

mysql_select_db('laterra_db') 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 'regioni':

    $sql="SELECT id, nome FROM `$tb` ORDER BY nome";

    break;

  case 'province':

    $sql="SELECT id, nome FROM `$tb` WHERE id_regione=$pid ORDER BY nome";

    break;

  case 'comuni':

    $sql="SELECT id, nome FROM `$tb` WHERE id_provincia=$pid ORDER BY nome";

    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, ';');

?>

Può esserci il prolema proprio qui dentro? Vi spiego il perchè: nella provincia di Potenza, per esempio, mi appaiono i comuni sbagliati. Consultando la tabella PROVINCE del db, Potenza ha id=6 e id_regione=2, lui mi legge id=6 che corrisponde al Friuli, quindi nell'elenco dei comuni mi vengono fuori i comuni del Friuli anzichè i comuni di Potenza...come posso correggere?

In pratica ho bisogno di dire in questo case "comuni" che id_provincia deve essere uguale al campo id della tabella PROVINCE e non della tabella REGIONI. Spero di avervi spiegato bene...

Grazie mille a tutti :bye:

inviato 7 anni fa
luseresi
X 0 X

Ciao,

potresti verificare che parametri passi al codice della pagina che hai scritto...

Questo è il valore che a te interessa per selezionare i comuni corretti

$pid = (int)$_REQUEST['id'];

Ciao

risposto 7 anni fa
zeta80
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda