• 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

Mały hosting, OGROMNE możliwości
0 głosów
863 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 1,559 wizyt
0 głosów
0 odpowiedzi 645 wizyt
pytanie zadane 29 stycznia 2018 w HTML i CSS przez DudSon Użytkownik (680 p.)
0 głosów
2 odpowiedzi 1,101 wizyt
pytanie zadane 8 maja 2016 w HTML i CSS przez Mr Popcorn Bywalec (2,340 p.)

93,718 zapytań

142,631 odpowiedzi

323,262 komentarzy

63,266 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...