Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Formularz problem z post
Forum PHP.pl > Forum > Przedszkole
-igiko-
Witam
Stworzyłem sobie prosty panel admina logowanie przez sesje slużacy do dodawania/edycji/usuwania podstron zapisanych jako rekordy mysql. O ile dodawanie i usuwanie działa o tyle edycja nie. Problem polega chyba na problemie z przekazaniem zmiennych tytul i tekst do update_info gdzie te zmienne miały być pobierane przez $_POST. O ile id które pobierane jest przez GET działa to te dwie funkcje nie działają co powoduje że formularz funkcja update_info owszem wykonuje się ale bez zmian w mysql. Ponizej zamieszczam fragmenty kodu
  1. <?php
  2. function edit() {
  3. $id = $_GET["id"];
  4.  
  5. if(isset($id)) {
  6.  
  7.  $result = mysql_query("SELECT * FROM strona WHERE id='$id'");
  8.  
  9.  $r = mysql_fetch_array($result);
  10.  
  11.  $tytul = $r['tytul'];
  12.  
  13.  $tekst = $r['tekst'];
  14.  
  15. echo'<form method="post" action="strona.php">
  16.  
  17. <table align="center" border="0" cellspacing="3" cellpadding="0">
  18.  
  19. <tr>
  20.  
  21. <td align="right" valign="top" class="uni_01">tytuł</td>
  22.  
  23. <td class="next">
  24.  
  25. <input type="text" name="tytul" value="'.$tytul.'" size="35">
  26.  
  27. </td>
  28.  
  29. </tr>
  30.  
  31. <td align="right" valign="top" class="uni_01">tekst</td>
  32.  
  33. <td class="next">
  34.  
  35. <textarea name="tekst" cols="55" rows="22">'.$tekst.'</textarea>
  36.  
  37. </td>
  38.  
  39. </tr>
  40.  
  41. <tr>
  42.  
  43. <td align="right" valign="top" class="uni_01"> </td>
  44.  
  45. <td class="next">
  46.  
  47. <input style="font-weight: bold;" type="submit" name="ok" value="zapisz">
  48.  
  49. <input type="reset" name="Reset" value="wyczyść">
  50.  
  51. <input type="hidden" name="cmd" value="update">
  52.  
  53. <input type="hidden" name="id" value="'.$id.'">
  54.  
  55. </td>
  56.  
  57. </tr>
  58.  
  59. </table>
  60.  
  61. </form>
  62.  
  63. ';
  64.  
  65. }
  66.  
  67. }
  68.  
  69.  
  70.  
  71. function update_info() {
  72.  
  73. $id = $_GET["id"];
  74.  
  75. if(isset($id)) {
  76.  
  77. $tytul = $_POST["tytul"];
  78.  
  79. $tekst = $_POST["tekst"];
  80.  
  81.  $query = "UPDATE strona SET tytul='$tytul', tekst='$tekst' WHERE id='$id'";
  82.  
  83.  $result = mysql_query($query);
  84.  
  85. header("Location: strona.php");
  86.  
  87. }
  88. }
  89.  
  90. $cmd = $_GET["cmd"];
  91.  
  92. if($cmd=='') {
  93.  
  94. connection();
  95.  
  96. add_form();
  97.  
  98. lista();
  99.  
  100. }
  101.  
  102. if($cmd=='add') {
  103.  
  104. connection();
  105.  
  106. add_info();
  107.  
  108. }
  109.  
  110. if($cmd=='del') {
  111.  
  112. del_info();
  113. }
  114.  
  115. if($cmd=='edit') {
  116. edit();
  117.  
  118. }
  119.  
  120. if($cmd=='update') {
  121.  
  122. update_info();
  123.  
  124. }
  125. ?>
JoShiMa
A dlaczego i gdzie $id jest wysyłane przez $_GET? Jak i gdzie powstaje zmienna $cmd?
-igiko-
Ale mówię problem raczej nie jest z get ID lub GET cmd bo to działa a nie działa POST. W linku poniżej caly kod
http://rafb.net/p/auAGcL23.html
potreb
  1. <?php
  2. $id = $_POST["id"];
  3. ?>


A nie GET. Przenalizuj dokładnie kod. W formularzu masz hidden id, więc albo stosuj POST albo GET. Lub zamień formularzową nazwę id
-igiko-
Jesli zamienię GET na POST całkowicie skrypt siada biała strona tylko zostaje. Proszę żeby ktoś napisał dokładnie co zmienić zresztą dodawanie podstron też nie działa w linku z kodem jest całość więc także proszę o pomoc z tym
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.