Vyselektování jednoho celectu, druhým selectem – JavaScript, AJAX, jQuery – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Vyselektování jednoho celectu, druhým selectem – JavaScript, AJAX, jQuery – Fórum – Programujte.comVyselektování jednoho celectu, druhým selectem – JavaScript, AJAX, jQuery – Fórum – Programujte.com

 

divady
~ Anonymní uživatel
21 příspěvků
19. 9. 2014   #1
-
0
-

dobrý den ve formuláři mam dva selecty u jednoho si mužou vybrat kategorii a v tom druhém podkategorii, 
jenže bych potřeboval vyselektovat select s podkategoriema v souvislosti na druhém 
tady mám skript

<select name="kategorie" >
  <option>--vyberte hlavní kategorii--</option>
              <?include "./inc/connect.php";
 
    $vystup=mysql_query("SELECT * FROM obory");
    while ($zaznam = mysql_fetch_array($vystup) ):
 
    echo  "<option value=\"$zaznam[kod]\">$zaznam[cely_nazev]</option>";
 
    endwhile;?>
            </select>
          </td>
       </tr> 
       <tr>
          <td>
      <label>Výber podkategorie: </label>
         </td>
       </tr> 
       <tr>
          <td>
    <select name="podkategorie" >
      
  <option>--vyberte nejdříve hlavní kategorii--</option>
              <?include "./inc/connect.php";
 
    $vystup=mysql_query("SELECT * FROM pod_obory");
    while ($zaznam = mysql_fetch_array($vystup) ):
 
    echo  "<option>$zaznam[nazev]</option>";
 
    endwhile;?>
            </select>

napadlo mně pomocí javascriptu spustit druhý php skript který podkategorie vytahuje z databáze (pak asi z externího souboru) 

a ten javascript by dosadol do sql dotazu "Where kod= 'to co by poslal javascript' " a pak výsledek zobrazil jako možnosti v selectu.

ale s javascriptem moc neumim, poradil by jste mi někdo?

Nahlásit jako SPAM
IP: 81.200.55.–
sakal910
Stálý člen
23. 9. 2014   #2
-
0
-

#1 divady
Ahoj,

buď to uděláš tak jak píšeš, nebo si je můžeš všechny načíst najednou, přiřadit jim identifikátor (hlavni kategorie - id, podkategorie - id_hlavni_kategorie) a pak pomocí JS jen zobrazovat/skrývat záznamy v podkategoriích ;-)

Dále pak zbytečně includuješ 2x script connect.php :) Pokud by sis nevěděl rady nebo chtěl s tím nějak pomoct tak mě můžeš kontaktovat na mailu (sakalik91@gmail.com) a rád ti s tím pomůžu ;-)

Nahlásit jako SPAM
IP: 195.144.106.–
peter
~ Anonymní uživatel
4014 příspěvků
23. 9. 2014   #3
-
0
-

Mozna hledas httprequest, ajax / jquery. Kdyz by tech dat nebylo mnoho, vytahl bych si to vsechno do jedne textove promene uz pri nacitani a pak rozparsoval pres js. 

<div id="sel0"></div>
<div id="sel1"></div>

<script>
var data, i;
data = "a,b,c;\
A,B,C;\
D,E,F;\
G,H,I".split(';');

function writeSel(m,n)
{
var i, str, el2;
el2 = document.getElementById('sel'+m);
if (el2 && data[n])
  {
  str = '';
  for(i=0;i<data[n].length;i++)
    {str += "\n"+'<option value="'+i+'">'+data[n][i]+'<\/option>';}
  el2.innerHTML = "\n"+'<select onchange="roll(this);">' + str + '<\/select>';
  }
}

function roll(el1)
{
var m,n;
m = el1.parentNode.id;
m = m.replace(/\D+/,'') * 1 + 1;
n = el1.options[el1.selectedIndex].value * 1 + 1;
writeSel(m,n);
}

function init()
{
for(i=0;i<data.length;i++)
  {data[i] = data[i].split(',');}
writeSel(0,0);
writeSel(1,1);
}

init();
</script>
Nahlásit jako SPAM
IP: 2001:718:2601:1f7:2d89:49...–
divady
~ Anonymní uživatel
21 příspěvků
25. 9. 2014   #4
-
0
-

#2 sakal91
ja jsem to jen tam nakopíroval, ale až ted jsem si všiml že tam mám 2 connect.php děkuji

kdyby mi to nešlo určitě Vám napíšu

#3 peter
ja  ještě v jquery moc neumím, spíš vůbec. jak bych měl do té množiny načíst data s mysql?

a zvlášť když to mám ze dvou tabulek?


Nahlásit jako SPAM
IP: 81.200.55.–
peter
~ Anonymní uživatel
4014 příspěvků
26. 9. 2014   #5
-
0
-

Zkousel jsi hledat googlem: example jquery double select?
Je tam jquery nemam, pouze primy vstup. Ten se v php dela pres prikaz echo. Formatovane to mam tak, ze (ale to z kodu pozna i zacatecnik)

data = "a,b,c;\ // select 1: value=0 text='a', value=1 text = 'b' ...
A,B,C;\ // select 2 pro value=0 selectu 1: value=0 text='A', value=1 text = 'B' ...
D,E,F;\ // select 2 pro value=1 selectu 1: value=0 text='D', value=1 text = 'E' ...
G,H,I"  // select 2 pro value=2 selectu 1: value=0 text='G', value=1 text = 'H' ...
.split(';');
// coz jednoduchym proklikanim snadno zjistis

Dale je to formatovane tak, ze data jsou odelena carkou. Selecty mezi sebou
 strednikem. Zpetne lomitko \ na konci radku tam vyzaduje javasript pri viceradkove
 stringy (v php kodu by nebylo). Pro JS to vypada tedy takto a klidne to tak muzes
 napsat, ja si to jen odradkoval:
data = "a,b,c;A,B,C;D,E,F;G,H,I";
Takze to rozsekam do pole pomoci data.split(';') , dostanes z toho pro js toto
 (opet to muzes klidne takto napsat uz od zacatku)
data = ["a,b,c", "A,B,C", "D,E,F", "G,H,I"];
A pak z toho cyklem prochazim vsechny polozky pole data, vyberu treba prvni,
 rozsekam ji na dalsi pole. (opet to klidne tak muzes vypsat uz z php)
data = [["a","b","c"], ["A","B",C"], ["D","E","F"], ["G","H","I"]];
Takze pak si muzes zobrazit jednotlive selecty nebo hodnoty:
alert(data[0]) // sel 1
alert(data[0][0]) // sel 1 hodnota 1

Z sql si to muzes zformatovat primo do jednoho z tech tvaru, ale bude to trosku sloziteji napsany dotaz pres ruzne GROUP_CONCAT a nejspis i LEFT JOINy, UNION a pod. Pak by se to do stranky vypsalo jako
 

$query = "SELECT ..."; //slozitejsi dotaz, ktery z toho vyrobi jednu hodnotu jednoho radku
$res = mysql_query($query) or die(mysql_error());
// 1
while ($row = mysql_fetch_array($res))
{
foreach ($row as $value)
  {echo "data = \"$value\".split(';');";}
}
// 1

// vlastne by sla asi cela ta cast mezi jednickami nahradit nejspis pres 
// mysql_fetch_field, protoze mas 1 pole, ale ty cykly jsou mozna lepsi, ze to pri 
chybe vypis treba vsechny radky a sloupce, coz se da pak krasne detekovat pres 
prohlizec - zobrazit zdrojovy kod stranky

mysql_fetch_field($res, 0);
Nahlásit jako SPAM
IP: 2001:718:2601:1f7:d82:2de...–
divady
~ Anonymní uživatel
21 příspěvků
26. 9. 2014   #6
-
0
-

#5 peter
děkujii mockrát za vysvětlení kodu, 

v js ještě pořád moc neumím,

voc asi vV8žim toho že jsi mi pomohl vysvětlit kod. děkuji

Nahlásit jako SPAM
IP: 81.200.55.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 5 hostů

Podobná vlákna

UPDATE tabulky se Selectem — založil marthy

Z jednoho řetězce tři — založil SuperAdmin

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý