Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Edycja pola select
bercow
post 7.09.2010, 00:01:20
Post #1





Grupa: Zarejestrowani
Postów: 156
Pomógł: 11
Dołączył: 25.12.2005

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


Jak pobrać do pola select ileś wartości z bazy i jednocześnie zaznaczyć jakaś z nich. A tak po polakiemu haha.gif Mam formularz edycji, to jest jedno z jego pól. Chce wczytać wszystkie pola do select, ale domyślnie zaznaczone ma być to które obecnie jest dla danego id. Obecnie wczytuje wszystkie pola, ale nie zaznacza tego ktory jest przed edycja. Dodatkowo jak wszystkie pola, bez względu na tym znajdujące się pod polami select przestają sie wyświetlać, dodając pole select w komentarze, inne pola działają. Zapytanie SELECT typ FROM typ jest poprawne, tak po prostu wygląda baza.

  1.  
  2. require "connection.php";
  3. connection();
  4.  
  5. $zap ="SELECT typ FROM typ";
  6. $wyn = mysql_query($zap);
  7.  
  8. echo'<td>Typ:</td><td> <select name=\"typ\" value="'.$r['type'].'" size=\"1\">';
  9. while ($r = mysql_fetch_assoc($wyn)){
  10. echo "<option>".$r['typ']."</option>";
  11. }
  12. echo "</select></td>";
  13. echo '</tr>
  14. <tr>';
Go to the top of the page
+Quote Post
kapuch
post 7.09.2010, 00:03:31
Post #2





Grupa: Zarejestrowani
Postów: 389
Pomógł: 69
Dołączył: 26.04.2010
Skąd: Łódź

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


Czyli zapytanie sql, pozniej petla while i w tej petli if, ktory sprawdza, czy dany select ma byc default smile.gif


--------------------
Nie chce "Pomógł", aktualna ilość (69) w pełni mnie satysfakcjonuje :)
Go to the top of the page
+Quote Post
bercow
post 7.09.2010, 00:11:10
Post #3





Grupa: Zarejestrowani
Postów: 156
Pomógł: 11
Dołączył: 25.12.2005

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


zapytanie SQL, zdefiniowanie domyslej wartosci dla pola select, while aby wypisac wszytskie, ale if ?

już wiem czemu mi się nie wczytywało inne pola, jedna zmienna miałem powielona, dokladnie $r, ale nadal nie moge nic do pola select wczytac

Ten post edytował bercow 7.09.2010, 00:17:52
Go to the top of the page
+Quote Post
kapuch
post 7.09.2010, 00:18:15
Post #4





Grupa: Zarejestrowani
Postów: 389
Pomógł: 69
Dołączył: 26.04.2010
Skąd: Łódź

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


Cytat(bercow @ 7.09.2010, 01:11:10 ) *
zapytanie SQL, zdefiniowanie domyslej wartosci dla pola select, while aby wypisac wszytskie, ale if ?

Ja to poprostu widze tak:
1. zapytanie sql
2. petla while, ktora "laduje" wszystkie optiony do selecta
3. if, ktory nadaje danemu optionowi wartosc domyslna

Ale mozna to zrobic na wiele innych sposobow, ja podalem chyba najprostszy.

PS. Nalezalo by w bazie sql juz zdefiniowac, ktore pole jest domyslne, no chyba ze chodzi o inna procedure, np. zalezna od wybranych opcji uzytkowanika.

Ten post edytował kapuch 7.09.2010, 00:19:57


--------------------
Nie chce "Pomógł", aktualna ilość (69) w pełni mnie satysfakcjonuje :)
Go to the top of the page
+Quote Post
bercow
post 7.09.2010, 12:49:31
Post #5





Grupa: Zarejestrowani
Postów: 156
Pomógł: 11
Dołączył: 25.12.2005

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


Trochę nie rozumiem, ale postaram się to zaprezentować inaczej.

Mamy wypisane 10 rekordów i każdy z nich ma tam ile pól, i opcje edytuj. Po klinieciu na edytuj, przesyłam za pomocą GET ID danego rekordu. Za pomocą tego ID wczytujemy do formularza pola odpowiadające temu konkretnemu rekordowi. Nie ma domyślnego pola dla pola select, pole select ma przybrać taka wartość jaka ma jest odpowiednia dla tego rekordu.

To ma byc normalna opcja edytuj to jakiegoś rekordu, ale muszę pobrać jakoś wszystkie opcje z bazy do pola select, i jakoś wymusić zaznaczenie konkretnej pozycji.
Go to the top of the page
+Quote Post
Wezyr
post 7.09.2010, 14:06:14
Post #6





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 4.09.2010

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


Cytat(bercow @ 7.09.2010, 13:49:31 ) *
pole select ma przybrać taka wartość jaka ma jest odpowiednia dla tego rekordu.

A co to znaczy 'wartość odpowiednia'? Na jakiej podstawie ma zostać określona?
Go to the top of the page
+Quote Post
bercow
post 10.09.2010, 11:59:39
Post #7





Grupa: Zarejestrowani
Postów: 156
Pomógł: 11
Dołączył: 25.12.2005

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


Mamy taka tabele jak na zdjęciu poniżej, pola takie jak typ, firma, przyjęte (miejsce przyjęcia) są to pola wyboru SELECT. Na końcu mamy dwie ikonki, jedna edytuj druga usun. Ta "wartosc odpowiednia" to aktualny zapis w bazie dla konkretnego rekordu. Czyli zwykła edycja. Chce aby po kliknięciu np. na edycje pola numer ID=3 (pierwsza pozycja), widoczne było pole SELECT z naznaczonym typem Ekspres. Obecnie wyświetla się kolejność jak w bazie.

http://img339.imageshack.us/img339/8016/drobn.jpg

  1. --
  2. -- Zrzut danych tabeli `typ`
  3. --
  4.  
  5. INSERT INTO `typ` (`idtyp`, `typ`) VALUES
  6. (1, 'Odkurzacz'),
  7. (2, 'Mikrofalowka'),
  8. (3, 'Ekspres'),
  9. (4, 'Roboty');


Go to the top of the page
+Quote Post
Wezyr
post 12.09.2010, 12:40:54
Post #8





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 4.09.2010

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


Mam wrażenie że niesamowicie namieszałeś winksmiley.jpg Rozumiem, że chcesz mieć możliwość wyświetlenia rekordów tabeli jak na zdjęciu (nazwijmy ją 'glowna') z możliwością edycji konkretnego rekordu, a właściwie tylko 3 pól (typ,firma,przyjete). Dobrze zrozumiałem?
No to jeśli tak to ma wyglądać, to jak dla mnie musisz mieć przygotowane 4 tabele: jedną taką jak na zdjęciu i 3 z wartościami które może przybrać dane pole select np. dla pola przyjete w tabeli będzie lista wszystkich miast na które można takie pole zmienić.
Po kliknięciu na 'edytuj' powinna zostać przesłana zmienna z id konkretnego rekordu (nazwijmy ja 'id') i nastąpi przejście do strony z polami select o kodzie jak poniżej:
  1. $id=$_REQUEST['id'];
  2.  
  3. $zap="SELECT typ,firma,przyjete FROM glowna WHERE id=$id";
  4. $wyn=mysql_query($zap);
  5. list($gtyp,$gfirma,$gprzyjete)=mysql_fetch_row($wyn);
  6.  
  7. echo'<tr><td>Typ:</td><td><select name=\"typ\">';
  8. $zap="SELECT typ FROM typ";
  9. $wyn=mysql_query($zap);
  10. while(list($typ)=mysql_fetch_row($wyn)) {
  11. if($typ==$gtyp) $selected=' selected="selected" ';
  12. else $selected='';
  13. echo '<option value="'.$typ.'" '.$selected.'>'.$typ.'</option>';
  14. }
  15. echo '</select></td></tr>';
  16.  
  17. echo'<tr><td>Firma:</td><td><select name=\"firma\">';
  18. $zap="SELECT firma FROM firma";
  19. $wyn=mysql_query($zap);
  20. while(list($typ)=mysql_fetch_row($wyn)) {
  21. if($firma==$gfirma) $selected=' selected="selected" ';
  22. else $selected='';
  23. echo '<option value="'.$firma.'" '.$selected.'>'.$firma.'</option>';
  24. }
  25. echo '</select></td></tr>';
  26.  
  27. echo'<tr><td>Przyjęte:</td><td><select name=\"przyjete\">';
  28. $zap="SELECT przyjete FROM przyjete";
  29. $wyn=mysql_query($zap);
  30. while(list($typ)=mysql_fetch_row($wyn)) {
  31. if($przyjete==$gprzyjete) $selected=' selected="selected" ';
  32. else $selected='';
  33. echo '<option value="'.$przyjete.'" '.$selected.'>'.$przyjete.'</option>';
  34. }
  35. echo '</select></td></tr>';
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 04:58