Autor Zpráva
Baterie
Profil
Čau,
Dělám si web o mobilech a potřebuju s něčím pomoct. Jde o to, že potřebuju udělat select box závislý na prvním selectu. Příklad: Mám databázi mobilů. V databázi jsou dva sloupce (značka,model). Mám první select, ve kterém si chci vybrat značku telefonu. Zároveň potřebuju, aby v tom selectu byly pouze značky, které jsou v databázi. (abych to nemusel do kódu dopisovat pokaždé, kdyz přibyde něco v databázi). Potom po výběru značky se odkryje druhý select, ve kterém si vyberu model. Zase podle databáze.

Takže kdyz to shrnu. Kdyz vyberu s prvním okně třeba Samsung, tak se mi v druhém poli objeví výběr na modely samsungu, které jsou v databázi. Pokud nebude vybraná značka, druhý select bude nepřístupný.

Chci vlastně úplně to samé jako je zde: www.mobilmania.cz

Poradite kde to sehnat? Budu vám nesmírně vděčný.
bagocina
Profil
Potrebuješ dva selecty so scriptom:

<script type="text/javascript" charset="utf-8">
  function ajax_load_options(val) {
      var sel = document.getElementById('dva');
      var url = "vytahovac.php?data=" + val;
      
      jQuery.get(url, function(data) {
      sel.innerHTML = data;
  });
       
  }                                              
</script>

<?php
          echo "Projekt: ";
            echo "<select id='jedna' name='projekt' onchange='ajax_load_options(this.value);' style='width: 306px;'>";
              echo "<option value='0'>-- vyberte projekt --</option>";
                $query1 = mysql_query("SELECT * FROM projekty");    
                while ($result1 = mysql_fetch_array($query1)) {
                  echo "<option value='".$result1['id']."'>".$result1['nazov']."</option>";
                }   
            echo "</select>";

          echo "Kategória: ";                   
            echo "<select id='dva' style='width: 306px;' name='kategorie'>";
              echo "<option value='0'>-- vyberte kategóriu --</option>";
                  echo "<option value='".$result1['id']."'>".$result1['nazov']."</option>";
                }              
            echo "</select>";
            
?>                  

a následne súbor vytahovac.php, ktorý vytiahne z DB a vloží do druhého selectu dáta závislé na prvom (samozrejme vo vytahovac.php musií byť aj volanie pripojenia do DB, ale to snáď nemusím vysvetľovať):

<?php             
header('Content-Type: text/html; charset=UTF-8');
    
    $data = $_GET['data'];
    
    echo "<option value='0'>-- vyberte kategóriu --</option>";
          
    $query = mysql_query("SELECT * FROM kategorie WHERE projekt = '$data' ORDER BY nazov ");    
    while ($result = mysql_fetch_array($query)) {
    
      echo "<option value='".$result['id']."'>".$result['nazov']."</option>";     
    }              
        

?>     
Baterie
Profil
sakra:) to moc nechapu


v js a jquery nejsem moc zdatny
joe
Profil
Máš dvě možnosti, jak to udělat.

1. Načítat do obou select boxů úplně všechny hodnoty (do prvního všechny značky - to tak asi máš teď a do druhého všechny modely jednotlivých značek). V tom druhém select boxu si ty jednotlivé položky označíš, k jaké značce patří.

$query2 = mysql_query("SELECT * FROM zarizeni");  // vyberes vsechny
echo "<option value='".$result2['model']."' data-znacka='" . $result['znacka'] . "'>".$result2['model']."</option>";

Po změně hodnoty prvního pak profiltruješ položky ve druhém select boxu na základě atributu data-znacka.

2. Budeš zobrazovat jen ty modely, podle vybrané značky. Na to budeš potřebovat AJAX.
Moderátor jenikkozak: Přesunuto z duplicitního vlákna.
Baterie
Profil
No ta možnost dvě se mi zda lepší. Jenomže to bych potřeboval celý kód, protože ajax už tuplem nedám.


Jako já našel už spoustu kódů, které by na tohle šly, ale nebyli pro mysql
Someone
Profil
Baterie:
potřeboval celý kód
práce a zakázky.

Nikdo to tu za tebe psát nebude, buďto projev trochu vlastní iniciativy nebo si podej inzerát.
joe
Profil
Baterie:
Tak hledej. Pak je taky třeba upozornit, že Java není JavaScript.
tereza
Profil *
joe:
"Po změně hodnoty prvního pak profiltruješ položky ve druhém select boxu na základě atributu data-znacka."

Můžu se zeptat prosím jak?
Btihin
Profil *
bagocina:
echo "<option value='".$result1['id']."'>".$result1['nazov']."</option>";
}
echo "</select>";
Z jakého důvodu je zde další složená závorka?
je tento příklad funkční?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: