Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP] [MYSQL] Przesłanie wartości do edycji w nowym oknie
Forum PHP.pl > Forum > Przedszkole
staker
Witam

Mam pewien problem z automatycznym pobraniem id z tabeli. Tabela jest pobierana z bazy i wyświetlana na stronie. Następnie chciałbym mieć możliwość edycji wybranego rekordu. Stworzyłem przycisk z linkiem do osobnego pliku formularza w którym odbywa się edycja. Sama edycja działa, niestety mam problem z przesłaniem wartości id bezpośrednio do samego formularza, tak by nie wpisywać go ponownie w polu. Wygląda to tak


fragment w formularzu [edit.php]
  1. <td style="width: 583px;">NR ID:&nbsp; <input name="id" value='$_POST[$row['id']]'></td>



fragment tabeli
  1. echo "<td class=tabval><b>".htmlspecialchars($row['id'])."</b></td>";
  2. echo "<td class=tabval>".htmlspecialchars($row['kodf'])."&nbsp;</td>";
  3. echo "<td class=tabval>".htmlspecialchars($row['nazwafir'])."&nbsp;</td>";
  4. echo "<td class=tabval>".htmlspecialchars($row['stanu'])."&nbsp;</td>";
  5. [.........]
  6.  
  7. // KOLOR STANU
  8.  
  9. if ($row['stanu']=="przekazano")
  10. {
  11. echo "<td class=tabval><span class=yellow>edytuj</span></a></td>";
  12. echo "<td class=tabval></td>";
  13. echo '<td class=tabval><form action="edit.php" method="post" target="_blank">
  14. <input type="submit" value="Edytuj">
  15. </form></td>';
  16. echo "</tr>";
  17. $i++;
  18. }
  19.  
  20. if ($row['stanu']=="usunieto")
  21. {
  22. echo "<td class=tabval><span class=green>stan OK</span></a></td>";
  23. echo "<td class=tabval></td>";
  24. echo "</tr>";
  25. $i++;
  26. }


Próbowałem już na wiele sposobów i albo mi wysyła jakieś śmieci, albo wywala błąd w linii
auto-all
  1. <td style="width: 583px;">NR ID:  <input type="hidden" name="id" value='$_POST[$row['id']]'></td>
Albo inaczej zrozumiałem wymagania
matino
1) Przede wszystkim atrybut <form> musi obejmować cały rząd tabeli
2) Dla każdego rzędu ustawiasz input hidden z id pobranym z bazy
  1. <table...>
  2. <tr>
  3. <form...>
  4. <td>....<input type="hidden" name="id" value="<?php echo $result['id'] ?>" />.....
  5. </form>
  6. </tr>
staker
Chodzi o to, że muszę wysłać tylko jedną wartość ID (po kliknięciu na przycisk edytuj) w wierszu który chcę edytować, czyli

  1. if ($row['stanu']=="przekazano")
  2. {
  3. echo "<td class=tabval><span class=yellow>edytuj</span></a></td>";
  4. echo "<td class=tabval></td>";
  5. echo '<td class=tabval><form action="edit.php" method="post" target="_blank">
  6. <input type="submit" value="Edytuj">
  7. </form></td>';
  8. echo "</tr>";
  9. $i++;
  10. }


nie bardzo rozumiem jak to mam do tego podpiąć?

W samym jak to nazwałem formularzu (bardziej stronie edycji), chodzi tylko o to by wpisał mi wartość wybranego ID, by nie wpisywać tego ręcznie (po id odczytuje mi które pole w tabeli w bazie ma edytować)
kadlub
  1.  
  2. <form action="edit.php?id=$jakieś twoje id"

może tak
staker
a jak pobrać w samym oknie??

  1. <td style="width: 583px;">NR ID:&nbsp; <input name="id" value='$_POST['id']'></td>


kadlub
w pliku edit.php robisz
echo $_GET['id'];
i ci sie wyświetla to id które przesłałeś w ten sposób
<form action="edit.php?id=$jakieś twoje id"
staker
Undefined index id in edit.php :/
kadlub
pokaż jak to robisz bo cos mi sie nie podoba
pokaż ten fragment tabeli z tym formularzem z którego chcesz wysłać te id
i ten fragment z piku edit.php gdzie chcesz go wstawić
staker
ID i wszystkie inne informacje czytam bezpośrednio z bazy... Więcej plików poszło na priv
matino
A tak w ogóle to nie lepiej zamiast form i submit podać link do strony z edycją?
  1. <a href="<?php echo 'edit.php?id=' . $id ?>">Edytuj</a>

W pliku edit.php odczytujesz id przez
  1. $_GET['id']
staker
Już sobie poradziłem smile.gif

  1. <td style="width: 583px;">NR ID:&nbsp; <? $c = $_POST['war'];
  2. echo "<input type=text name=id value=$c";


  1.  
  2. $war=$row['id'];
  3.  
  4. echo '<form action="edit.php?id=$war" method="post" target="_blank"><td class=tabval>
  5. <input type="hidden" name="war" value="'.$war.'">
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.