Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] problem z listą rozwijaną
Forum PHP.pl > Forum > Przedszkole
Chemiq
mam problem. tworzę panel administracyjny i jest w nim pole zmień login. login do zmiany chcę wybierać z listy rozwijanej. cały skrypt jest już niby skończony ale nie działa tak jak trzeba. sprawdzałem co jest nie tak i się dowiedziałem. skrypt nie odczytuje wartości z listy rozwijanej. próbowałem różnymi sposobami (nawet z tego forum) ale nic nie pomogło. gdyby ktoś mi pomógł byłbym ogromnie wdzięczny.

oto treść skryptu:
  1. <?php
  2. include ('sprawdzdostep.php');
  3.  
  4. $zapytanie = "SELECT * FROM uzytkownik WHERE login = '$login' AND haslo = '$haslo'";
  5. $wykonaj = mysql_query($zapytanie);
  6. while ($wiersz = mysql_fetch_array($wykonaj)) {
  7. $admin_lev = $wiersz[admin_lev];
  8. }
  9.  
  10. if ($admin_lev>0) {
  11.  
  12. echo ("<font class='tekst'>
  13. <FORM action='index.php?id=19&ad=1' method='post'>
  14. Wybierz uzytkownika:
  15. <select name='login'>");
  16.  
  17. $zapytanie1 = "SELECT * FROM `uzytkownik`";
  18. $wykonaj1 = mysql_query($zapytanie1);
  19. while ($wiersz1 = mysql_fetch_array($wykonaj1)) {
  20. $id = $wiersz1[id];
  21. $log1 = $wiersz1[login];
  22.  
  23. echo ("<OPTION>". $id.": ".$log1); }
  24. echo("</OPTION>
  25. </select>
  26. </FORM>
  27. <form method='post' action='index.php?id=19&ad=1'>
  28. Nowy login:<br />
  29. <input name='nowy_login' type='text' maxlength='20' size='20' />
  30. <INPUT type='submit' value='Zmien' style='font-size:11px; border-style:none;'><br />");
  31.  
  32. $login = $_POST['login'];
  33. $nowy_login = $_POST['nowy_login'];
  34.  
  35. $zmiana = "UPDATE `uzytkownik` SET login = '$nowy_login' WHERE login = '$login'";
  36. $zapis = mysql_query ($zmiana);
  37. echo ("Nowy login uzytkownika " . $login . " to " . $nowy_login);
  38.  
  39. } // koniec warunku if admin_lev
  40.  
  41. else {
  42. echo ("Nie masz odpowiednich uprawnien do dostepu");
  43. }
  44. ?>
elnino.pl
Domykaj <option> tyle razy, ile utwierasz.
skowron-line
a zamkniecie </OPTION> nie powinno byc w petli
Chemiq
nie rozumiem. znacznik <option> jest przecież zamknięty, a </option> jest już poza pętlą (tak zrozumiałem post skowron-line'a).
mi chodzi o to że nie mogę wczytać loginu który wybiorę z listy a nie o to że loginy mi się na liście nie wyświetlają (bo się wyświetlają).
nospor
zrob se
  1. <?php
  2. echo $login;
  3. ?>
a zobaczysz ze nie dostajesz loginu tylko: id:login
to sie nie dziw ze ci zapytanie nie dziala poprawnie

co do option: kazde <option> musi byz zamkniete. podkreslam: kazde, a nie ty raz na koniec dajesz </option> i zadowolony jestes ze sie wyswietla.
pozatym wartosc option daje sie w value: <option value="wartosc">tekst</option>
Chemiq
przepraszam że tak marudzę ale problem jest dalej gdyż wpisując:
  1. <?php
  2. echo ($login);
  3. ?>

zmienna $login nie jest wyświetlana i właśnie nie wiem dlaczego
nospor
ale w ktorym miejscu to robisz? Bo Twoim kodzie to widze ze w jednym ifie wyswietlasz liste i update robisz. on ci wogole tam dochodzi do tego update? Bo o ten update ci chodzi tak wlasciwie?
No i najwazniejsze: dokonales zmian w z option co ci sugerowano?
Gość
to moze od razu
  1. <?php
  2. print_r($wiersz);
  3. ?>

a jak nic nie wyświetli to znaczy, że zapytanie nie pobrało żadych wartości.
Chemiq
no właśnie do update nie dochodzi. poniżej jest kod który mam teraz (zaznaczyłem gdzie jest echo). jeżeli jest w tym miejscu to nic nie wyświetla, czyli nie ma szans dojść do update a co za tym idzie poprawnie go wykonać. coś zrobiłem nie tak w tym formularzu ale nie mam zielonego pojęcia co.

oto kod który mam teraz:
  1. <?
  2. include ("sprawdzdostep.php");
  3.  
  4. $zapytanie = "SELECT * FROM `uzytkownik` WHERE login = '$login' AND haslo = '$haslo'";
  5. $wykonaj = mysql_query($zapytanie);
  6. while ($wiersz = mysql_fetch_array($wykonaj)) {
  7. $admin_lev = $wiersz[admin_lev];
  8. }
  9.  
  10. if ($admin_lev>0) {
  11.  
  12. echo ("<font class='tekst'>
  13. <FORM action='index.php?id=19&ad=1' method='post'>
  14. Wybierz uzytkownika:
  15. <select name='login'>");
  16.  
  17. $zapytanie1 = "SELECT * FROM `uzytkownik`";
  18. $wykonaj1 = mysql_query($zapytanie1);
  19. while ($wiersz1 = mysql_fetch_array($wykonaj1)) {
  20. $id = $wiersz1[id];
  21. $log1 = $wiersz1[login];
  22. echo ("<OPTION>".$log1."</OPTION>"); }
  23. echo ("</select>
  24. </FORM>
  25. <form method='post' action='index.php?id=19&ad=1'>
  26. Nowy login:<br />
  27. <input name='nowy_login' type='text' maxlength='20' size='20' />
  28. <INPUT type='submit' value='Zmien' style='font-size:11px; border-style:none;'><br />");
  29.  
  30.  
  31. $login = $_POST['login'];
  32. $nowy_login = $_POST['nowy_login'];
  33.  
  34. echo ($login); // <-- TU JEST ECHO O KTÓRE CHODZI (NIE WYŚWIETLA ZMIENNEJ $login)
  35.  
  36. $zmiana = "UPDATE `uzytkownik` SET login = '$nowy_login' WHERE login = '$login'";
  37. $zapis = mysql_query ($zmiana);
  38. echo ("Nowy login uzytkownika " . $login . " to " . $nowy_login);
  39.  
  40. } // koniec warunku if admin_lev
  41.  
  42. else {
  43. echo ("Nie masz odpowiednich uprawnien do dostepu");
  44. }
  45. ?>
nospor
no ale przeciez ty liste z uzytkownikami trzymasz w jednym formularzu, a przycisk do wysylki robisz w innym formualrzu, ktory juz nie ma loginu. gdzie sens i logika? Wysyla sie tylko ten formularz, ktorego submit wcisnoles, a nie wszystkie

edit: a ja tego nie zauwazylem wczesniej smile.gif
adi2005
Ne jestem pewnien ale w HTML'u nie pisze się method='post' tylko method="post". Cudzysłów powinien być zdaje mi się....

no wałśnie. Jest dwa razy <form>. Opiton odnoszą sie do innego <form> niz jest submit. <-- fanie to napisałem. pOlszczyzna smile.gif smile.gif smile.gif
Chemiq
czyli jeżeli dobrze wywnioskowałem z twojego posta, to powinienem wstawić submit obok listy rozwijanej? a jest możliwość że od razu po kliknięciu na wybraną pozycję na liście była odczytywana?
elnino.pl
Musisz dodać do select:

onchange='this.form.submit()'

chyba...
Chemiq
już działa. wystarczyło dodać submit obok listy rozwijanej. wielkie dzięki za pomoc smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.