Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql][php] dynamiczna zmiana wartości pól formularza
Forum PHP.pl > Forum > Przedszkole
b4rt3kk
Mam takie zapytanie do mysql, jednak nie to jest istotą mojego problemu, jednak zamieszczam cały fragment kodu. Oraz pętlę, która realizuje wczytywanie interesujących mnie danych z bazy i ich wypisanie, tu wszystko działa ładnie. Jednak chciałem do każdego newsa podpiąć komentarze, które rozpoznawane by były, tzn. które komentarze z bazy tyczą się którego newsa, po id newsa, który miał być pobierany z bazy przy każdym wykonaniu pętli, jak się jednak okazało, po wywołaniu każdego z linków wczytuje ten sam, czyli ostatni id. Jak zrobić, by grupa komentarzy podpięta do tego samego newsa miała nadane to samo idnews, a kolejna grupa komentarzy podpięta do kolejnego newsa miała już inne idnews.

W skrócie, klikam przycisk komentarzy od newsa1, to przekazywane jest id 1 (w celu dalszego zapisu w bazie), natomiast klikam komentarze pod news2, to otrzymuje id 2.
Kod
$zapytanie = "SELECT `topic`,`news`,`date`,`author`,`idnews` FROM `news`";
$idzapytania = mysql_query($zapytanie);
while ($wiersz = mysql_fetch_row($idzapytania))
{
$idnews=$wiersz[4];
echo "<form action=\"dodaj_komentarz.php\" method=\"POST\" name=\"dodaj_komentarz\">";
echo "<input type=\"hidden\" name=\"idnews\" value=\"$idnews\" />";
echo "<tr><td>";
echo $wiersz[0]."</td><td>".$wiersz[2]."</td></tr>";
echo "<tr><td colspan=\"2\">".$wiersz[1]."</td></tr>";
echo "<tr><td colspan=\"2\">".$wiersz[3]."</td></tr>";
echo "<tr><td colspan=\"2\"><a href=\"#\" onclick=\"dodaj_komentarz.submit()\">Komentarze ()</a></td></tr>";
echo "<form />";
}

Przepraszam, za 3 takie same tematy, myszke mam popsuta.
mortus
Do wywołania "panelu", w którym użytkownik będzie miał możliwość dodania komentarza nie musisz korzystać z formularza. Wystarczy przesłać id w adresie.
  1. $zapytanie = "SELECT `topic`,`news`,`date`,`author`,`idnews` FROM `news`";
  2. $idzapytania = mysql_query($zapytanie);
  3. while ($wiersz = mysql_fetch_row($idzapytania)) {
  4. $idnews=$wiersz[4];
  5. echo "<tr><td>";
  6. echo $wiersz[0]."</td><td>".$wiersz[2]."</td></tr>";
  7. echo "<tr><td colspan=\"2\">".$wiersz[1]."</td></tr>";
  8. echo "<tr><td colspan=\"2\">".$wiersz[3]."</td></tr>";
  9. echo "<tr><td colspan=\"2\"><a href=\"nazwa_pliku.php?id=" . $idnews . "\" >Komentarze ()</a></td></tr>";
  10. }
Przyjrzyj się linii 9. Wtedy dostęp do id masz z globalnej tablicy $_GET (dokładniej $_GET['id']) w pliku nazwa_pliku.php (ten plik powinien udostępniać nam formularz do dodawania komentarzy, w którym to używasz pola typu hidden z wartością (value) równą $_GET['id']).

A tak na przyszłość używaj (właściwego) BBCODE.
piotrooo89
proszę uzupełnić kod o odpowiedni bbcode. w przeciwnym razie temat zostanie zamknięty.
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.