selezioni dipendenti

Ciao a tutti,

sto cercando di fare un form con due select dipendenti. La scelta della prima selcet condiziona le opzioni della seconda select. On line ho trovato solo "statici" ma quello che devo fare io è utilizzare delle tabelle dinamiche (dati estratti da un db).

Ho due tabelle una categorie e una sotto categorie. La tabella sotto categorie contieve il campo categoriaid che la collega alla prima tabella.

Ho fatto qualcosa del tipo:

$categorie = @mysql_query('SELECT id, name FROM categoria_link ORDER BY name');

      

if (!$categorie) {

   exit('<p>Impossibile ottenere la lista delle categorie.</p>');

}

    

$sottocategorie = @mysql_query("SELECT id, name FROM categoria_sub_link WHERE categoriaid='".$_POST["aid"]."'  ORDER BY name");

      

if (!$sottocategorie) {

    exit('<p>Impossibile ottenere la lista delle sotto categorie.</p>');

}

       

    

    ?>

<form name="form1" enctype="multipart/form-data" method="post" action=""> 

    <table width="99%" border="0" align="center" cellpadding="5" cellspacing="1" class="entryTable">

     <tr>

      <td width="125" height="64" align="left" class="label">Nome Categoria:</td>

      <td width="352" align="left" class="content">

      <select class="input_text"  name="aid" size="1"  onchange="javascript: document.form1.submit();">

            <option selected value="">Seleziona Categoria</option>

            <?php

         while ($categoria = mysql_fetch_array($categorie)) {

           $aid = $categoria['id'];

           $aname = htmlspecialchars($categoria['name']);

           echo "<option value='$aid'>$aname</option>\n"; 

         }

         ?>

          </select>

      </td>

   </tr>

     <tr>

      <td width="125" height="49" align="left" class="label">Nome SOTTO Categoria:</td>

      <td class="content" align="left">

      <select class="input_text"  name="aid2" size="1">

            <option selected value="">Seleziona una sotto Categoria</option>

            <?php

         while ($sottocat = mysql_fetch_array($sottocategorie)) {

           $aid2 = $sottocat['id'];

           $aname2 = htmlspecialchars($sottocat['name']);

           echo "<option value='$aid2'>$aname2</option>\n"; 

         }

         ?>

          </select>

      </td>

   </tr>

se scelgo dalla prima selezione la categoria mi ri aggirona la pagina, nella seconda select compaiono le sottocategorie, ma nella prima trovo nuovamente la scritta "Seleziona Categoria.."

Cosa posso fare per migliorare la funzione???

Grazie

 :bye:

inviato 10 anni fa
stellina
X 0 X

Cosa posso fare per migliorare la funzione???

Grazie

 :bye:

prova così:

<?php
   while ($categoria = mysql_fetch_array($categorie)) {
      $aid = $categoria['id'];
      $aname = htmlspecialchars($categoria['name']);
      $isselected= ($_POST['aid']==$aid)? " SELECTED" : "";
      echo "<option value='$aid'$isselected>$aname</option>\n"; 
   }
?>

dovrebbe funzionare. Poi magari lo ottimizzi meglio. :)

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