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

Posty w temacie


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

 



RSS Aktualny czas: 22.12.2025 - 16:34