Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [AJAX] Zależne pole SELECT
peja1990
post
Post #1





Grupa: Zarejestrowani
Postów: 150
Pomógł: 1
Dołączył: 4.12.2010

Ostrzeżenie: (10%)
X----


Witam.
Czy byłby ktoś w stanie pomóc mi ze skryptem AJAX ?
Oto skrypt, który należałoby przerobić: http://www.dhtmlgoodies.com/scripts/ajax-c...ned-select.html

Przeróbka miałaby działać na zasadzie takiej, że dane w polach select (pierwszym jak i drugim) byłyby wyciągane z bazy danych mySQL.

Zależny select ?
Chodzi o to, żeby w zależności od wyboru w pierwszym polu select opcje w drugim polu select zmianiały się bez przeładowania strony.

Pierwszy select ma wyciągać następujące dane:
ID użytkownika, jego imię, nazwisko oraz nazwę firmy, lecz jako value będzie tylko "ID".
Przykład: <option value="1">Moja firma - Jan Kowalski (1)</option>

Drugi select ma wyciągać następujące dane:
ID usługi i nazwę usługi w zależności od id klienta, który został wybrany w powyższym polu select.
Sprawdzam czy dany użytkownik ma dostępne odpowiednie usługi i drukujemy opcje w drugim polu select
Przykład: <option value="123">123 - Typ zamówienia #1</option>
//<option value="ID">ID - Nazwa usługi</option>

Za pomoc byłbym niezmiernie wdzięczny !
Za każdą odpowiedź daję "Pomógł" !


Dodam jak wygląda okrojona struktura bazy danych oraz kod PHP (aktualnie):

Struktura bazy danych mySQL:
  1. CREATE TABLE IF NOT EXISTS `users` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `name` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  4. `firm` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  5. `surname` varchar(100) COLLATE utf8_polish_ci NOT NULL,
  6. PRIMARY KEY (`id`)
  7. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=1;
  8.  
  9.  
  10. CREATE TABLE IF NOT EXISTS `orders` (
  11. `id` int(11) NOT NULL AUTO_INCREMENT,
  12. `id_user` int(11) NOT NULL,
  13. `type` enum('0','1','2','3','4','5','6') DEFAULT '1',
  14. PRIMARY KEY (`id`)
  15. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;


Kod PHP:
  1. $query = mysql_query("SELECT id_user,ex_www FROM orders WHERE id='".(int)$_GET['id']."' LIMIT 1") or die (mysql_error());
  2. while($row = mysql_fetch_array($query)) {
  3. $idu = mysql_query('SELECT id,name,surname,firm FROM users') or die (mysql_error());
  4. while($user = mysql_fetch_array($idu)) {
  5. echo '<option value="'.$user['id'].'">'.$user['firm'].' - '.$user['name'].' '.$user['surname'].' ('.$user['id'].')</option>';
  6. }
  7. $count = mysql_fetch_array(mysql_query("SELECT count(id) as how_much FROM orders WHERE status!='0' AND (type='1' OR type='2' OR type='5') AND id_user='".$row['id_user']."'")) or die (mysql_error());
  8. if($count['how_much']==0) {
  9. echo '<option value="">brak odpowiednich zamówień</option>';
  10. }
  11. elseif($count['how_much']>0) {
  12. $oquery = mysql_query("SELECT id,type FROM orders WHERE status!='0' AND (type='1' OR type='2' OR type='5') AND id_user='".$row['id_user']."'") or die (mysql_error());
  13. while($order = mysql_fetch_array($oquery)) {
  14. echo '<option value="'.$order['id'].'">'.$order['id'].'';
  15. if($order['type']==1) {
  16. echo ' - Typ zamówienia #1';
  17. }
  18. elseif($order['type']==2) {
  19. echo ' - Typ zamówienia #2';
  20. }
  21. elseif($order['type']==5) {
  22. echo ' - Typ zamówienia #3';
  23. }
  24. echo '
  25. </option>
  26. ';
  27. }
  28. }
  29. }


Ten post edytował peja1990 2.06.2011, 23:06:22
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
peja1990
post
Post #2





Grupa: Zarejestrowani
Postów: 150
Pomógł: 1
Dołączył: 4.12.2010

Ostrzeżenie: (10%)
X----


Kolegaaa, Ty mi tutaj piszesz o jakiś inputach i autocopleteach + jakaś data urodzenia ? No bez kitu.
Odchodzisz całkowicie od tematu, a co do tego:
Cytat
Drugi select to naprawdę niewiele przerobiony skrypt z linka, gdzie po prostu jako cel masz plik php na serwerze. Jeśli do całości zaprzęgniesz jQuery, które ma baaaaaaardzo uproszczoną obslugę ajaxa, tak by nawet debil sobie poradził, to zrobienie tego skryptu nie potrwa nawet dla Ciebie długo. Uwierz, że to naprawdę nie jest trudne... Wystarczy na moment usiąść i zrozumieć JAK to działa

Mowa o AJAX'ie a Ty piszesz o jQuery... Do tego, jeżeli to takie proste to może gotowe rozwiązanie ?! Hmmm...
Go to the top of the page
+Quote Post

Posty w temacie


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: 26.12.2025 - 21:19