• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

[MYSQL]+[PHP] dwa selekty zależne od siebie

Object Storage Arubacloud
0 głosów
519 wizyt
pytanie zadane 7 listopada 2016 w PHP przez lukasz33 Nowicjusz (140 p.)

 

Witam chciałbym wyświetlić dane w polu select jakie dane ? dane marki i model chciałbym aby działało to w ten sposób że w pierwszym polu wybieram załóżmy markę audi a w drugim automatycznie wyświetlają mi się wszystkie modele tej marki, wszystkie dane modeli i marek są pobierane z bazy i porostu wybieram sobie audi to wyświetlają mi się modele audi, mercedes itp problem w tym że gdy wybieram np. mercedes to nie wyświetlają mi się modele tylko tej określonej marki ale wszystkie modele wszystkich marek i teraz jak napisać skrypt aby to działało jak ja chce?.

//index.php

[PHP] pobierz, plaintext

<html>

<head>

<link rel="stylesheet" href="style.css" type="text/css">

</head>

<body class="back">

<div class="txt"></div>

<div id="rejestracja"><br>



<label class="font">Marka i Model:</label><br>

<select id="marka" class="marka" name="marka">

<?php



include("sterownik_db.php");

$zapytanie = "SELECT * FROM marka";

$wynik = mysql_query($zapytanie);

if(mysql_affected_rows()>0)

{

while ($wiersz = mysql_fetch_assoc($wynik))

{

?>

<option value="<?php echo $wiersz['id_marki'];?>"><?php echo $wiersz['nazwa'];?></option>

<?php

}

}

?>

</select>

<select id="model" class="model" name="model">

<?php

include("sterownik_db.php");

$zapytanie1 = "SELECT id_marka,model FROM model,marka WHERE model.id_marka = marka.id_marki";

$wynik1 = mysql_query($zapytanie1);

if(mysql_affected_rows()>0)

{

while($wiersz1 = mysql_fetch_assoc($wynik1))

{

?>

echo "<option value="<?php echo $wiersz1['id_marka'];?>" class="<?php echo $wiersz1['id_model'];?>"><?php echo $wiersz1['model'];?></option>

<?php

}

}

?>

</select>

<select id="paliwo" class="benzyna" name="paliwo">

<?php

include("sterownik_db.php");

$zapytanie2 = "SELECT * FROM paliwo";

$wynik2 = mysql_query($zapytanie2);

mysql_close($db);

while ($wiersz2 = mysql_fetch_array($wynik2))

{

echo "<option value=".$wiersz2['id_paliwa'].">".$wiersz2['rodzaj_paliwa']."</option>";

}

echo "</select>";



?>

<br>

<input class="prze" name="txt">

<input class="prze2" name="txt">

</div>

</form>

</div>

</div>

</div>

</body>

</form>

</html>

create.sql

CREATE TABLE marka
(
id_marki int NOT NULL PRIMARY KEY,
nazwa varchar(20)
);
 
CREATE TABLE paliwo
(
id_paliwa int PRIMARY KEY AUTO_INCREMENT,
rodzaj_paliwa varchar(20) NOT NULL
);
 
CREATE TABLE model
(
id_model int NOT NULL PRIMARY KEY AUTO_INCREMENT,
id_marka int NOT NULL,
model char(20),
CONSTRAINT FOREIGN KEY model(id_marka) REFERENCES marka(id_marki)
);
 
 
CREATE TABLE auto 
(
id_auta int PRIMARY KEY AUTO_INCREMENT,
marka int NOT NULL,
rok_produkcji int(4) NOT NULL,
przebieg int(20) NOT NULL,
id_rodzaj_paliwa int NOT NULL,
CONSTRAINT FOREIGN KEY (marka) REFERENCES marka(id_marki),
CONSTRAINT FOREIGN KEY (id_rodzaj_paliwa) REFERENCES paliwo (id_paliwa)
);
insert.sql

[SQL] pobierz, plaintext

INSERT INTO marka VALUES (1, 'Audi');

INSERT INTO model VALUES (NULL,1,"A6");

INSERT INTO model VALUES (NULL,1,"A8");

INSERT INTO model VALUES (NULL,1,"100");



INSERT INTO marka VALUES (2, 'BMW');

INSERT INTO model VALUES (NULL,2,"318");

INSERT INTO model VALUES (NULL,2,"750");

INSERT INTO model VALUES (NULL,2,"Z3");



INSERT INTO marka VALUES (3, 'Citroen');

INSERT INTO model VALUES (NULL,3,"Berlingo");

INSERT INTO model VALUES (NULL,3,"Xsara");

INSERT INTO model VALUES (NULL,3,"C3");

2 odpowiedzi

0 głosów
odpowiedź 7 listopada 2016 przez Boshi VIP (100,240 p.)
Dwa zależne od siebie selecty to ajax
komentarz 7 listopada 2016 przez lukasz33 Nowicjusz (140 p.)
przeniesione 7 listopada 2016 przez Arkadiusz Waluk
a nie dałoby rady przez samo PHP ? jezeli nie to czy mógłbym liczyć na pomoc bo nigdy ajaxa nie ruszałem
komentarz 7 listopada 2016 przez Boshi VIP (100,240 p.)
http://www.codexworld.com/dynamic-dependent-select-box-using-jquery-ajax-php/

 

p.s jak odpisujesz to komentarzem a nie odpowiedzią
0 głosów
odpowiedź 7 listopada 2016 przez Adux Obywatel (1,740 p.)
edycja 16 kwietnia 2017 przez Adux
Możesz sterować wyświetlanymi opcjami za pomocą javascriptu.

Na zdarzeniu onchange pierwszego selecta - marki, uruchamiasz funkcje która będzie wybierała które modele wyświetlić, a reszte ukrywała.

Proponuje na początku funkcji ustawić wszystkie opcje pętlą :

twojselect.options[index=j].hidden = true;

a potem dla wejściowego id marki ustawiać żeby wyświetlała konkretne modele przestawiając na false.

 

edit: dzięki temu zrobisz to samym js'em, bez ajaxa.
komentarz 7 listopada 2016 przez lukasz33 Nowicjusz (140 p.)
Dzieki wszystkim za pomoc temat można zamknać :D wszystko działa :D :D :D

Podobne pytania

0 głosów
2 odpowiedzi 892 wizyt
0 głosów
0 odpowiedzi 347 wizyt
pytanie zadane 29 stycznia 2018 w HTML i CSS przez DudSon Użytkownik (680 p.)
0 głosów
2 odpowiedzi 807 wizyt
pytanie zadane 8 maja 2016 w HTML i CSS przez Mr Popcorn Bywalec (2,340 p.)

92,631 zapytań

141,498 odpowiedzi

319,869 komentarzy

62,011 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...