regioni,prov ecc

Ciao a tutti,

ho visto questo post

http://www.phpnews.it/forum/index.php?topic=363.msg2126#msg2126

e sto cercando di modificarlo per renderlo dinamico cioè prendendo i dati da un d

1) faccio la query per tovare le regioni

2)  

$counter = 0;

while ($data = mysql_fetch_array($regioni))

 {

    $counter++;

    $regione_arr[$counter] = $data["nome_regione"];

}

foreach ($regione_arr as $regione)

{

$selected = (isset($_POST['regione']) && $_POST['regione'] == $regione) ? 'selected="selected"' : '';

$regioni_opt .= "<option value=\"$regione\" $selected>$regione</option>\n";

}

 

Qui ho già un problema.

Vorrei che nell'option il value fosse l'id della regione che poi mi servirà per fare la query della provincia. Ma nell'array non riesco a memorizza id_regione ...

come faccio????

inviato 10 anni fa
stellina
X 0 X

Potresti generare le "options" contestualmente alla fetch:

while ($data = mysql_fetch_array($regioni)) 

{

    $selected = (isset($_POST['regione']) && $_POST['regione'] == $regione) ? 'selected="selected"' : '';

    $regioni_opt .= "<option value=\"$data[id_regione]\" $selected>$data[nome_regione]</option>\n";

}

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X
$selected = (isset($_POST['regione']) && $_POST['regione'] == $regione) ? 'selected="selected"' : '';

non va bene se io ho eliminato il foreach

risposto 10 anni fa
stellina
X 0 X

Si, basta una piccola modifica:

while ($data = mysql_fetch_array($regioni)) 

{

    $selected = (isset($_POST['regione']) && $_POST['regione'] == $data['nome_regione']) ? 'selected="selected"' : '';

    $regioni_opt .= "<option value=\"$data[id_regione]\" $selected>$data[nome_regione]</option>\n";

}

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

non mi funziona proprio niente   :'(

riesco a vedere la lista delle province ma se ne scelgo una non succede niente

$regioni = @mysql_query("SELECT * FROM regioni");

   

while ($regione = mysql_fetch_array($regioni)) {

         $nome_regione = $regione['nome_regione'];

         $id_regione = $regione['id_regione'];

         $selected = (isset($_POST['regione']) && $_POST['regione'] == $nome_regione) ? 'selected="selected"' : '';

         $regioni_opt .= "<option value=\"$id_regione\" $selected>$nome_regione</option>\n";

   }

   

if($_POST)

{

   if($_POST['comune'] !='')

   {

      echo 'Tutti i dati sono stati inviati';

      exit();

   }

   if($_POST['nome_regione'] != '')

   {

   $province = @mysql_query("SELECT * FROM prov WHERE id_regione = '".$_POST["id_regione"]."' ");

   if (!$province) {

      exit('<p>Errore nel recuperare le province presenti nel database!<br />'.

            'Error: ' . mysql_error() . '</p>');

   }

      

   while ($provincia = mysql_fetch_array($province)) {

         $nome_provincia = $provincia['nome_provincia'];

         $id = $provincia['id'];

         $selected = (isset($_POST['nome_provincia']) && $_POST['nome_provincia'] == $nome_provincia) ? 'selected="selected"' : '';

         $regioni_opt .= "<option value=\"$id\" $selected>$nome_provincia</option>\n";

   }

}

non riesco a capire dove sbaglio... manca qualcosa???

 :-\

risposto 10 anni fa
stellina
X 0 X

Nel select hai messo l'evento onchange: onchange="javascript: document.form1.submit();" ?

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

si, l'istruzione è dentro la select del form...

 :-\

 :bye:

risposto 10 anni fa
stellina
X 0 X

a questo punto non so che dire...

che cosa sbaglio???

risposto 10 anni fa
stellina
X 0 X

Quando scegli una provincia la pagina viene ricaricata? viene effettuato automaticamente l'invio del form?

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

in ordine:

- scelgo un regione

- il form riaggiorna la pagina e mi fa vedere TUTTE le province inserite non solo quelle della regione scelta

- nel riaggiornare la pagina non rimane selezionata la regione

spero tu possa darmi una mano perchè sto provando e ripovando ma niente di buono...  :(

 :bye:

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