Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Pobieranie wartości wpisanej w pole.
Forum PHP.pl > Forum > Przedszkole
Colder
Witam,
zrobiłem takie pole:
  1. Powód Odrzucenia: <br /><input type="text" name="qqww" id="qqww" class="pole" value="" />


I teraz chcę pobrać to co użytkownik wpiszę w owe pole, myślałem że zrobię to za pomocą:
  1. $_POST['qqww']


Jednak zmienna jest pusta...

Proszę o pomoc.
daros17
jeśli formularz wysyłasz postem
  1. $qqww = $_POST['qqww'];
  2. echo $qqww;
askone
A czy formularz ma zadeklarowany atrybut "method" jako "POST"?? Jeśli nie określisz jawnie wartości tego atrybutu to domyślnie przyjmowana jest wartość "GET". Więcej informacji tutaj

Pozdrawiam
Colder
Ajjj.
To może tak:
Mam coś takiego:
  1. <form action="index.php?strona=pp&podanie_zatwierdz=<?php echo $_GET['podanie']; ?>" method="post">

To jest chyba metoda czyż nie ?

I dam Wam cały kod, przy czym zaznaczyłem te miejsca które dotyczą problemu ( // TUTAJJJJJJJ!!! ) tongue.gif

  1. <form action="index.php?strona=pp&podanie_zatwierdz=<?php echo $_GET['podanie']; ?>" method="post">
  2. <div class="div_pole">
  3. <strong>Odpowiedz 1:</strong> <br /><?php echo $array_podanie['odpow1']; ?>
  4. </div>
  5. <div class="div_pole">
  6. </div>
  7. <div class="div_pole">
  8. </div>
  9. <div class="div_pole">
  10. </div>
  11. <div class="div_pole">
  12. <strong>Odpowiedz 2:</strong> <br /><?php echo $array_podanie['odpow2']; ?>
  13. </div>
  14. <div class="div_pole">
  15. </div>
  16. <div class="div_pole">
  17. </div>
  18. <div class="div_pole">
  19. </div>
  20. <div class="div_pole">
  21. <strong>Odpowiedz 3:</strong> <br /><?php echo $array_podanie['odpow3']; ?>
  22. </div>
  23. <div class="div_pole">
  24. </div>
  25. <div class="div_pole">
  26. </div>
  27. <div class="div_pole">
  28. </div>
  29. <div class="div_pole">
  30. Powód Odrzucenia: <br /><input type="text" name="qqww" id="qqww" class="pole" value="" /> // TUTAJJJJJJJ!!!
  31. <script type="text/javascript">
  32. var qqww = new LiveValidation('qqww');
  33. </script>
  34. </div>
  35.  
  36. <div class="div_pole">
  37.  
  38. <a href="index.php?strona=pp&podanie=<?php echo $_GET['podanie']; ?>&akcja=akceptuj" style="width:50px;height:30px;text-align:center;padding:25px 15px 10px 15px;background:#ffcc33;margin:5px;float:left;">Akceptuj</a>
  39. <a href="index.php?strona=pp&podanie=<?php echo $_GET['podanie']; ?>&akcja=odrzuc" style="width:50px;height:30px;text-align:center;padding:25px 15px 10px 15px;background:#ffcc33;margin:5px;float:left;">Odrzuć</a><br /><br />
  40. </div>
  41. </form>
  42. </div>
  43.  
  44. <?php
  45. }
  46. }elseif(isset($_GET['podanie']) and is_numeric($_GET['podanie']) and isset($_GET['akcja'])){
  47. if($_GET['akcja'] == 'akceptuj'){
  48. $query_akcja = "UPDATE ".$prefix."forum_users SET status='2', moderator='".$_SESSION['login']."', user_active='1' WHERE user_id='".$_GET['podanie']."'";
  49. $result_akcja = mysql_query($query_akcja) or die("Wystapil blad");
  50. if($result_akcja){
  51. $informacja = 'Podanie zostało zaakceptowane, a konto użytkownika aktywowane.';
  52. }else{
  53. $informacja = 'Podanie nie zostało zaakceptowane, a konto użytkownika nadal pozostaje nieaktywne.';
  54. }
  55. }elseif($_GET['akcja'] == 'odrzuc'){
  56. $query_akcja2 = "UPDATE ".$prefix."forum_users SET user_active='0', status='1', moderator='".$_SESSION['login']."' WHERE user_id='".$_GET['podanie']."'";
  57. $result_akcja2 = mysql_query($query_akcja2) or die("Wystapil blad");
  58. $blabla = mysql_query("INSERT INTO `".$prefix."odrzucone` (id,powod) VALUES ('".$_GET['podanie']."','".$_GET['qqww']."')"); // TUTAJJJJJJJ!!!


Wiem że taka 'kupa' kodu raczej nie jest lubiana przez programistów wiec jeżeli macie jakieś sugestię co może być dalej tego przyczyną, bardzo proszę o post.


Jak widać zaminiłem POST na GET i nic to nie dało.
daros17
jak już to tak
  1. <form action="index.php?strona=pp&podanie_zatwierdz=<?php echo $_GET['podanie']; ?>" method="GET">
askone
Jeśli zmieniłeś wartość atrybutu "method" na POST to:
  • rozdziel kod odpowiedzialny na rysowanie formularza od kodu odpowiedzialnego za obróbkę danych z niego otrzymanych
  • jeśli zmieniłeś method to dlaczego nadal w kodzie odwołujesz się do $_GET['qqww']questionmark.gif - zrób $_POST['qqww']


Rozdzielenie kodu najlepiej poprzez taki warunek:
  1. <?php
  2. if(!$_POST)
  3. {
  4. //tutaj kod html formularza - przy czym pamiętaj nie możesz tutaj odwoływać się do wartości jakie będą otrzymywane z formularza
  5. }
  6. else
  7. {
  8. //tutaj kod obsługi danych otrzymanych przez formularz
  9. //aby sprawdzić co otrzymujesz daj var_dump'a
  10. echo var_dump($_POST);
  11. }
  12. ?>


ps. korzystaj z firebuga z zakładki sieć - tam widać jakie dane przesyłane są pomiędzy przeglądarką a Twoim skryptem...
Colder
Kurcze widzisz, cieszę się z odpowiedzi, tyle że ja znalazłem 'ciało' które wykonuje się gdy podanie zostaje odrzucane, potem dodałem pole aby podawać powód odrzucenia, i teraz po prostu chcę pobrać go z tej rubryki do zmiennej. Nie bardzo wiem jak to podzielić według Twojego wzoru i w sumie nie rozumiem w czym to pomoże tongue.gif Trochę się też boje to ruszać, bo nie jestem żadnym php'owcem. Po dodaniu tego raczej nie dotknę tej strony znowu z miesiąc, wiec nie piszcie po co się za to biorę jak nic nie umiem tongue.gif


Mój kod wygląda tak:
  1. <form action="index.php?strona=pp&podanie_zatwierdz=<?php echo $_GET['podanie']; ?>" method="post">
  2. <div class="div_pole">
  3. <strong>Odpowiedz 1:</strong> <br /><?php echo $array_podanie['odpow1']; ?>
  4. </div>
  5. <div class="div_pole">
  6. </div>
  7. <div class="div_pole">
  8. </div>
  9. <div class="div_pole">
  10. </div>
  11. <div class="div_pole">
  12. <strong>Odpowiedz 2:</strong> <br /><?php echo $array_podanie['odpow2']; ?>
  13. </div>
  14. <div class="div_pole">
  15. </div>
  16. <div class="div_pole">
  17. </div>
  18. <div class="div_pole">
  19. </div>
  20. <div class="div_pole">
  21. <strong>Odpowiedz 3:</strong> <br /><?php echo $array_podanie['odpow3']; ?>
  22. </div>
  23. <div class="div_pole">
  24. </div>
  25. <div class="div_pole">
  26. </div>
  27. <div class="div_pole">
  28. </div>
  29. <div class="div_pole">
  30. Powód Odrzucenia: <br /><input type="text" name="qqww" id="qqww" class="pole" value="" />
  31. <script type="text/javascript">
  32. var qqww = new LiveValidation('qqww');
  33. </script>
  34. </div>
  35.  
  36. <div class="div_pole">
  37.  
  38. <a href="index.php?strona=pp&podanie=<?php echo $_GET['podanie']; ?>&akcja=akceptuj" style="width:50px;height:30px;text-align:center;padding:25px 15px 10px 15px;background:#ffcc33;margin:5px;float:left;">Akceptuj</a>
  39. <a href="index.php?strona=pp&podanie=<?php echo $_GET['podanie']; ?>&akcja=odrzuc" style="width:50px;height:30px;text-align:center;padding:25px 15px 10px 15px;background:#ffcc33;margin:5px;float:left;">Odrzuć</a><br /><br />
  40. </div>
  41. </form>
  42. </div>
  43.  
  44. <?php
  45. }
  46. }elseif(isset($_GET['podanie']) and is_numeric($_GET['podanie']) and isset($_GET['akcja'])){
  47. if($_GET['akcja'] == 'akceptuj'){
  48. $query_akcja = "UPDATE ".$prefix."forum_users SET status='2', moderator='".$_SESSION['login']."', user_active='1' WHERE user_id='".$_GET['podanie']."'";
  49. $result_akcja = mysql_query($query_akcja) or die("Wystapil blad");
  50. if($result_akcja){
  51. $informacja = 'Podanie zostało zaakceptowane, a konto użytkownika aktywowane.';
  52. }else{
  53. $informacja = 'Podanie nie zostało zaakceptowane, a konto użytkownika nadal pozostaje nieaktywne.';
  54. }
  55. }elseif($_GET['akcja'] == 'odrzuc'){
  56. $query_akcja2 = "UPDATE ".$prefix."forum_users SET user_active='0', status='1', moderator='".$_SESSION['login']."' WHERE user_id='".$_GET['podanie']."'";
  57. $result_akcja2 = mysql_query($query_akcja2) or die("Wystapil blad");
  58. $blabla = mysql_query("INSERT INTO `".$prefix."odrzucone` (id,powod) VALUES ('".$_GET['podanie']."','".$_POST['qqww']."')");


Linijka z zakresu:

  1. <form action="index.php?strona=pp&podanie_zatwierdz=<?php echo $_GET['podanie']; ?>" method="post">


Linijka z polem w zakresie:

  1. Powód Odrzucenia: <br /><input type="text" name="qqww" id="qqww" class="pole" value="" />


Pobieranie zmiennej:

  1. $blabla = mysql_query("INSERT INTO `".$prefix."odrzucone` (id,powod) VALUES ('".$_GET['podanie']."','".$_POST['qqww']."')");


Nie działa, zmienna $_POST['qqww'] nadal jest pusta.


PS:

Zauważyłem jeszcze że w tym pliku nie ma na początku:

Jeżeli jednak dodam taki kod pojawia się bład, czy to jest przyczyną nie działającego POST ?
askone
Nie do końca jestem pewien czy poprzez link jesteś w stanie zatwierdzić formularz do wysyłki... Starasz się to zrobić w tym fragmencie:
Cytat
  1. <a href="index.php?strona=pp&podanie=<?php echo $_GET['podanie']; ?>&akcja=akceptuj" style="width:50px;height:30px;text-align:center;padding:25px 15px 10px 15px;background:#ffcc33;margin:5px;float:left;">Akceptuj</a>
  2. <a href="index.php?strona=pp&podanie=<?php echo $_GET['podanie']; ?>&akcja=odrzuc" style="width:50px;height:30px;text-align:center;padding:25px 15px 10px 15px;background:#ffcc33;margin:5px;float:left;">Odrzuć</a><br /><br />


Spróbuj to zrobić poprzez odpowiednie inputy:
  1. <input name="submit" type="submit" value="1" style="width:50px;height:30px;text-align:center;padding:25px 15px 10px 15px;background:#ffcc33;margin:5px;float:left;">Akceptuj</input>
  2. <input name="submit" type="submit" value="0" style="width:50px;height:30px;text-align:center;padding:25px 15px 10px 15px;background:#ffcc33;margin:5px;float:left;">Odrzuć</input>


Po przesłaniu formularza jesteś w stanie rozpoznać, który submit został naciśnięty poprzez odczyt wartości $_POST['submit']: 0 lub 1...

Pisane z palca, ale nie powinno być błędów składniowych

Pozdrawiam
Colder
Nie o to chodzi haha.gif
Ale i tak dzięki. Muszę jednak prosić o więcej, a w zasadzie o info:
  1. <form action="index.php?strona=pp&podanie_zatwierdz=<?php echo $_GET['podanie']; ?>" method="post">


form action =
Co się podaję po znaku = ?
Link do czego ?


Bo ja to widzę, jako link do którego ma przesłać dane, i mam teraz tak:
  1. <form action="index.php?strona=pp&podanie=<?php echo $_GET['podanie']; ?>&akcja=odrzuc" method="post">
  2. <div class="div_pole">
  3. Powód Odrzucenia: <br /><input type="text" name="qqww" id="qqww" class="pole" value="" />
  4. </div>
  5. </form>


W tym samym pliku mam:
  1. if($_GET['akcja'] == 'akceptuj'){

A niżej zrobiłem taki testowy:
  1. $informacja = 'Podanie zostało odrzucone, a konto użytkownika nadal pozostaje nieaktywne. To jest POST:'.$_POST['qqww'].'!';

I zmienna jest pusta, choć jestem na linku wskazanym wyżej :/ ...
askone
Cytat
Nie znam się na Php.
Wszystko robię metoda prób i błędów, CTR + C, CTR + V.
:/


Po tym mogę Ci polecić tylko ten kurs. Zacznij od tego, postaraj się zrozumieć podstawy, później będziesz choć wiedział co kopiujesz....

Pozdrawiam
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.