Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z formularzem, proszę o pomoc
Forum PHP.pl > Forum > Przedszkole
eurosoft
mam plik ewidencja.php w którym generowana jest tabela z wartościami pobieranymi z MySQL, wszystko działa i jest OK, jednakże link umożliwiający edycję wybranych danych w bazie wydaje mi się mało czytelny i nie ergonomiczny. Chciałbym zamiast linku w ostatniej kolumnie mieć button "zmień", który otwierałby okienko POPUP o wcześniej zdefiniowanych rozmiarach umożliwiajć edycję danych w bazie. Dziękuję za wszelkie rady i podpowiedzi.
Poniżej kod jaki mam w tej chwili do edycji danych:
  1.  
  2. echo "<td width=40 align=center>".$z[5]."</td>";
  3. echo "<td><a href=\"ewidencja.php?a=edit&amp;id_book={$r[0]}\" >ZMIEŃ</a></td>";
  4. echo "</tr>";

a tu kod do formularza:
  1.  
  2. $a = trim($_REQUEST['a']);
  3. $id_book = trim($_GET[id_book]);
  4.  
  5.  
  6. if($a == 'edit' and !empty($id_book)) {
  7. /* zapytanie do tabeli */
  8. $wynik = mysql_query("SELECT * FROM $tabela WHERE $tabela.id_book='$id_book'") or die('Błąd zapytania');
  9.  
  10. $wynik1 = mysql_query("SELECT * FROM $tabela1 WHERE $tabela1.id_book='$id_book'") or die('Błąd zapytania');
  11.  
  12. if(mysql_num_rows($wynik) > 0)
  13.  
  14. $r = mysql_fetch_assoc($wynik);
  15. $z = mysql_fetch_assoc($wynik1);
  16.  
  17.  
  18. {
  19. /* wczytujemy dane do formularza */
  20. /* w formularz znajdują się ukryte pola "a" z wartością "save" i pole "id" z wartością zmiennej id */
  21.  
  22. '<form action="ewidencja.php" method="post">
  23. <input type="hidden" name="a" value="save" />
  24. <input type="hidden" name="id_book" value="'.$id_book.'" />
  25.  
  26.  
  27. Imię i Nazwisko:<br />
  28. <input type="text name="imie_nazwisko" readonly disabled value="'.$r['imie_nazwisko'].'" /><br /><br>
  29. Data \ godz. zakończenia:<br />
  30. <input type="text" size="10" name="end_pol" value="'.$r['end_pol'].'" />&nbsp;&nbsp;
  31. <input type="text" size="5" name="godz_end" value="'.$r['godz_end'].'" /><br /><br />
  32. Gatunek:&nbsp;&nbsp;&nbsp;&nbsp;Ilość szt:<br />
  33. <input type="text" size="15" name="animals" value="'.$z['animals'].'" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  34. <input type="text" size="5" name="ilosc" value="'.$z['ilosc'].'" /><br /><br />
  35. Ilość:<br /><input type="text" size="5" name="ilosc_shot" value="'.$z['ilosc_shot'].'" /><br /><br>
  36. <input type="submit" value="Aktualizuj dane" />
  37. </form>';
  38. }
  39. }
  40.  
  41. elseif($a == 'save') {
  42. /* odbieramy zmienne z formularza */
  43. $id_book = $_POST['id_book'];
  44. $end_pol = trim($_POST['end_pol']);
  45. $godz_end = trim($_POST['godz_end']);
  46. $animals = trim($_POST['animals']);
  47. $ilosc = trim($_POST['ilosc']);
  48. $ilosc_shot = trim($_POST['ilosc_shot']);
  49. $login = trim($_SESSION['login']);
  50.  
  51.  
  52. /* uaktualniamy tabelę */
  53. mysql_query("UPDATE shot, book SET shot.animals='$animals', shot.ilosc='$ilosc', shot.ilosc_shot='$ilosc_shot', shot.login='$login', book.end_pol='$end_pol', book.godz_end='$godz_end' WHERE shot.id_book='$id_book' and book.id_book='$id_book'")
  54. or die('Błąd zapytania');
  55.  
  56. echo '
  57.  
  58. Dane zostały zaktualizowane';
  59.  
  60.  
  61. }
  62.  
  63.  

Dziękuję bardzo!
Ulysess
hmm czyli każdy button to był by oddzielny formularz po kliknięciu ktorego otwierało by się nowe okno..
w FORMie dajesz onsubmit="return toWin(this)" a na początku skryptu
  1. <script type="text/javascript">
  2. function toWin(frm) {
  3. if (open('', 'nowe_okno', 'scrollbars=yes,width=1000,height=800,left=400,top=400')) {
  4. frm.target = 'nowe_okno';
  5. setTimeout(function() { frm.submit(); }, 1000);
  6. return false;
  7. }
  8. else return true;
  9. }
eurosoft
Cytat(Ulysess @ 9.11.2010, 18:23:52 ) *
hmm czyli każdy button to był by oddzielny formularz po kliknięciu ktorego otwierało by się nowe okno..
w FORMie dajesz onsubmit="return toWin(this)" a na początku skryptu
  1. <script type="text/javascript">
  2. function toWin(frm) {
  3. if (open('', 'nowe_okno', 'scrollbars=yes,width=1000,height=800,left=400,top=400')) {
  4. frm.target = 'nowe_okno';
  5. setTimeout(function() { frm.submit(); }, 1000);
  6. return false;
  7. }
  8. else return true;
  9. }


z tego co rozumiem, nie ma możliwości aby zrobić to co sobie wymyśliłem? buttonów będzie tyle co rekordów w bazie (więc dość dużo ok 5000)... a w jaki sposób stworzyć link buttona posiadający id_book umożliwiający edycję danego rekordu?
Ulysess
Cytat(eurosoft @ 9.11.2010, 18:30:04 ) *
z tego co rozumiem, nie ma możliwości aby zrobić to co sobie wymyśliłem? buttonów będzie tyle co rekordów w bazie (więc dość dużo ok 5000)... a w jaki sposób stworzyć link buttona posiadający id_book umożliwiający edycję danego rekordu?


przecież pisałem.. generujesz w php tabele w której wstawiasz dane w ostatniej kolumnie wstawiasz:

  1. <form method="POST" action="pop" onsubmit="return toWin(this)"><input type="hidden" name="id_do_edycji" value="3423" /><input type="submit" value="Edytuj" /></form>


no i na początku strony dajesz kod JS które dałem we wcześniejszym poście
eurosoft
dziękuję, ale jest jeszcze mały problem bo nie otwiera się nowe okno tylko formularz pojawia się w tym sammy oknie.....

i jeszcze jedno, button pojawia się prawidłowo przy każdemy rekordzie, jednakże w każdym przypadku zmiana dotyczy Id=1
  1. echo "<td><form method=POST action=zmien.php?a=edit&amp;id_book={$r[0]} onsubmit=return toWin(this)><input type=hidden name=zmien.php/><input type=submit style=width:40 value=Zmień /></td>";
daros17
  1. <form target="_blank"> ...</form>


fakt już poprawione
Ulysess
a nie zapominasz o zamykaniu -> "" questionmark.gif... a skoro wstawia 1 to albo złą zmienną podstawiasz albo w zmiennej jest tylko id 1
eurosoft
Dziękuję wszystkim, wszystko działa jak należy!

Mam jeszcze dwa pytania dotyczące powyższego:
1. Nadmieniając że wszystko jest ok, formularz się otwiera w nowym oknie, wypełnia się danymi, wysyła się aktualizując dane to czy można jednocześnie wysyłając formularz zamknąć okienko?

2. Wcześniej tak jak pisałem miałem link do edycji danych teraz mam buttona i jest git jednakże szerokość linii każdego rekordu zwiekszyła się dwukrotnie, choć button mieści się spokojnie w dwóch liniach (mam teraz trzy linie na rekord), jest na to jakas rada?
Próby z regulacją szerokości/wysokości buttona nic nie dały style=width:45 style=height:23
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.