Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [jQuery][mysql] Zależne od siebie combo
deha21
post
Post #1





Grupa: Zarejestrowani
Postów: 544
Pomógł: 5
Dołączył: 18.08.2009

Ostrzeżenie: (0%)
-----


Mam dwa pola combo. Jedno to marka, drugie to model. Gdy wybierze się markę to odpowiednio drugi pole zmienia wartości dla modeli tej marki. Chodzi o to, że chcę to zrobić aby po wybraniu marki przeładowywało się tylko pole modeli. Oczywiście i marki, i modele ładowane są z bazy.
Szukałem różnych przykładów ale nic nie znalazłem co wspólpracowałoby za bazą danych.
Pozdrawiam

Ten post edytował deha21 8.11.2009, 16:10:10


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




ajax dynamic select


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
deha21
post
Post #3





Grupa: Zarejestrowani
Postów: 544
Pomógł: 5
Dołączył: 18.08.2009

Ostrzeżenie: (0%)
-----


Wielkie dzięki!

P.S Dopisałem nazwę tematu bo mnie gdzies umknął winksmiley.jpg

EDIT: Działa! Nie trzeba czytać tego co pod spotem winksmiley.jpg


EDIT: Nie byłoby tematu w którym po uzyskaniu odpowiedzi nie miałbym problemów winksmiley.jpg

[JAVASCRIPT] pobierz, plaintext
  1. function ajaxFunction(){
  2. var ajaxRequest;
  3.  
  4. try{
  5. ajaxRequest = new XMLHttpRequest();
  6. } catch (e){
  7. try{
  8. ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
  9. } catch (e) {
  10. try{
  11. ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
  12. } catch (e){
  13. alert("Błąd! Musisz zaktualizować przeglądarkę!");
  14. return false;
  15. }
  16. }
  17. }
  18.  
  19. ajaxRequest.onreadystatechange = function(){
  20. if(ajaxRequest.readyState == 4){
  21. var ajaxDisplay = document.getElementById('ajax');
  22. ajaxDisplay.innerHTML = ajaxRequest.responseText;
  23. }
  24.  
  25. }
  26.  
  27. var marka = document.getElementById('marka').value;
  28.  
  29. var queryString = "?marka=" + marka;
  30. ajaxRequest.open("GET", "modele.php" + queryString, true);
  31. ajaxRequest.send(null);
  32. }
[JAVASCRIPT] pobierz, plaintext


model.php
  1. $marka = $_GET['marka'];
  2.  
  3. $query = "SELECT * FROM model WHERE marka = '$marka'";
  4. $wynik = @mysql_query($query);
  5. $row = mysql_fetch_array($wynik);
  6.  
  7. $dropdown = "<select name='model'>";
  8.  
  9. do {
  10. $dropdown .= "<option value=".$row['id'].">".$row['nazwa']."</option>";
  11. }while ($row = mysql_fetch_array($wynik));
  12. $dropdown .= "</select>";
  13.  
  14. echo $dropdown;


I teraz tak... Przy dodawaniu auta wybiera się marke, model i spokojnie dodaje. Gdy chcę zrobić edycje modelu to wybieram markę, model, klikam Edytuj i wyskakuje błąd w lini:
  1. $model=$_POST['model'];

Zrobiłem tak, że gdy nie wybierze się jeszcze marki to domyslnie pokazują się modele, powiedzmy 'Audi'. I bez zmiany marki edycja działa normalnie ale gdy wybiorę coś innego niż 'Audi' lub wybiorę coś innego a potem powrócę do wyboru 'Audi', wtedy już nie działa. Tak jakby błąd był w pliku model.php gdzie generowane są modele danej marki.
Zapomniałem dodać, że inne zmienne z tego formularza są dobrze przesyłane.

Dziwne jest to, że przy dodawaniu pojazdu dane z ajaxa są poprawnie przesyłane natomiast przy edycji modeli już nie. Chociaż wszystko inne jest dobrze zrobione bo sprawdzałem już pare razy.

Help me! ;p

EDIT: Działa! biggrin.gif Trochę przemieniłem kod z ajax.js na zrozumiały dla mnie i zaczęło działać winksmiley.jpg

Ten post edytował deha21 8.11.2009, 17:38:20


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 04:50