Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]2 submity w 1 pliku.
Forum PHP.pl > Forum > Przedszkole
starter91php
Witam, chce zrobic cos takiego, ze przy wyborze opcji z selecta pojawi sie formularz z domyslnymi wartosciami wybranymi z bazy wg pola select (do tego momentu jest ok).
Następnie w razie potrzeby je zmienic, wcisnac ZMIEN i tutaj powinny sie aktualizowac rekordy w bazie - jednak sie nie aktualizuja :].

  1. <?php
  2. //select
  3. function ShowForm($komunikat=""){    
  4.   echo $komunikat."<br />";
  5.   echo '<form action="" method="post">';
  6.   echo '<select name="nameselect">';
  7.   $result = mysql_query("SELECT id, nazwa FROM `party`") or die(mysql_error());
  8.   while ($row = mysql_fetch_assoc($result))
  9.   {
  10.       echo '<option value="'.$row["nazwa"].'">'.$row["nazwa"].'</option>';
  11.   }
  12.   echo '</select>';
  13.   echo '<br />';
  14.   echo '<input type="hidden" value="1" name="sendedit" />';
  15.   echo '<input type="submit" value="edytuj" />';
  16.   echo '</form>';
  17. }
  18.  
  19. //pola tekstowe
  20.  
  21. function Editform($komunikat1=""){
  22. $result1 = mysql_query ("SELECT `opis` FROM `party` WHERE `nazwa` = '".$_POST['nameselect']."'");
  23. $row1 = mysql_fetch_array($result1);
  24.   echo $komunikat1."<br />";
  25.   echo '<form action="" method="post">';
  26.   echo 'Nazwa: <input type="text" name="nazwa" value="'.$_POST['nameselect'].'" /><br><br>';
  27.   echo 'Opis: <br> <textarea rows="10" cols="40" name="partyopis">';
  28.   echo ''.$row1[0].'</textarea><br><br>';
  29.   echo '<input type="hidden" value="1" name="partychange" />';
  30.   echo '<input type="submit" value="ZMIEN" />';
  31.   echo '</form>';  }
  32.  
  33. //instrukcja glowna
  34. if($_POST['sendedit']==1)
  35. {
  36. Editform();
  37. }
  38. if($_POST['partychange']==1)
  39. {
  40. var_dump($GLOBALS);
  41.       mysql_query("UPDATE `baza1` SET `nazwa` = '".$_POST['nazwa']."' WHERE `nazwa`='".$_POST['nameselect']."'") or die("nichuja1");
  42.       mysql_query("UPDATE `baza2` SET `opis` = '".$_POST['partyopis']."' WHERE `nazwa`='".$_POST['nameselect']."'") or die("nichuja2");
  43.       mysql_query("UPDATE `baza3` SET `nazwa` = '".$_POST['nazwa']."' WHERE `nazwa`='".$_POST['nameselect']."'") or die("nichuja3");
  44.         echo "edycja przebiegla ok!";
  45.       }
  46. else
  47.   echo "Sprobuj jeszcze raz!";
  48. ?>

Z tego co udalo mi sie zauwazyc, po zatwierdzeniu selecta ani w tablicy post, ani w tablicy global nie ma zmiennej 'nameselect' - pewnie to uniemozliwia dalsze operacje. Jakies pomysly?
Foxx
To logiczne, że nie ma w $_POST zmiennej 'nameselect' skoro Twój formularz wygląda tak:
  1. <?php
  2. echo 'Nazwa: <input type="text" name="nazwa" value="'.$_POST['nameselect'].'" /><br><br>';
  3. ?>

Chyba powinieneś poszukać jej tu: $_POST['nazwa']

A te globals to skąd pochodzą? Kiedy nadajesz im jakieś wartości? I do czego są Ci w ogóle potrzebne?
starter91php
Robilem wczesniej na post zamiast globals, wynik byl ten sam smile.gif
To pole tekstowe jest do aktualizacji rekordu w bazie, wiec pod $_POST['nazwa'] znajduje się ta nowa wartosc, $_POST['nameselect'] jest tylko jej wartoscia domyslna :]
Nie wiem skad mam wziasc ta pierwotna (wybrana wartosc z selecta), przy aktualizacji rekordow w bazie, bo po kliknieciu ZMIEN w tablicy $_POST i w $GLOBALS pozycji 'nameselect' juz nie ma :|


ps. globals zamienione na post, moze bedzie czytelniej smile.gif
golaod
No jak ty sobie wyobrażasz, żeby pod indeksem 'nameselect' była zmienna skoro nie inicjujesz jej w formularzu ?
Chcesz, żeby się pojawiła ?
Kod
<input type="hidden" name="nameselect" value="<?php echo $_POST['nameselect']; ?>" />
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.