Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]przypisanie formularza uzytkownikowi
Forum PHP.pl > Forum > Przedszkole
elglt
Witam, za pomocą pętli wywołuje kilka formularzy:

<form name="wybor" method="post">
<select name="wartosc" onchange="submit()">
<option value="0"> </option>
<option value="1" >value1</option>
<option value="2">value2</option>
<option value="3">value3</option>
<option value="4">value4</option>
</select></form></td><td>';
echo'<a href="user.php?id='.$row[id].'">'.$row[name].' </a></td>

i tak oto mam kilka formularzy z przypisanymi obok użytkownikami i...no własnie - każdy formularz to ten sam formularz, a ja bym chciał żeby każdy formularz miał jakieś swoje id czy coś - żeby zatwierdzenie pierwszego formularza powodowało przypisanie jakiejś wartości pierwszemu użytkownikowi a zatwierdzenie drugiego przypisanie wartosci drugiemu itd, ma ktoś jakąś sugestię jak to zrobić?
b4rt3kk
Np. tak:

  1. <form action="jakas_strona.php?id_usera=<?php echo '$row[id]'; ?>" name="wybor" method="post">


i teraz odczytujesz z $_GET['id_usera'], dla którego wywołałeś formularz.

Albo tak:

  1. <select name="wartosc[<?php echo '$row[id]'; ?>]" onchange="submit()">


i odczytujesz id usera poprzez wyłuskanie klucza tablicy $_POST['wartosc']. Jeszcze kilka sposobów by się znalazło, jeśli powyższe Ci nie odpowiadają.
elglt
Ten pierwszy nie wchodzi w grę ponieważ wszystko chce na jednej stronie a ten drugi jest dobry, tylko że kiedy daje tablice jako select name (tak jak podałeś w przykładzie) nie ma żadnego efektu. Dodam, że formularze są wywoływane przez skrypt php i przed tym stoi echo więc robie to w ten sposób <select name="wartosc[ '.$row[id].']" onchange="submit()"> a następnie if ($_POST['wartosc'] == "1") { echo="udalo sie";} ale to chyba bez znaczenia

kiedy robie to bez tablicy (select name="wartosc") kod działa ale formularz zawsze będzie tym samym formularzem...sposób z tablicą jest dobry ale nie mam pojęcia czemu nie działa ;|
nospor
Cytat
Ten pierwszy nie wchodzi w grę ponieważ wszystko chce na jednej stronie
A co ma piernik do wiatraka? Nikt ci nie każe tego robić na innych stronach. Równie dobrze możesz to robić na tej samej
b4rt3kk
Cytat(elglt @ 18.10.2012, 03:46:58 ) *
Ten pierwszy nie wchodzi w grę ponieważ wszystko chce na jednej stronie a ten drugi jest dobry, tylko że kiedy daje tablice jako select name (tak jak podałeś w przykładzie) nie ma żadnego efektu. Dodam, że formularze są wywoływane przez skrypt php i przed tym stoi echo więc robie to w ten sposób <select name="wartosc[ '.$row[id].']" onchange="submit()"> a następnie if ($_POST['wartosc'] == "1") { echo="udalo sie";} ale to chyba bez znaczenia

kiedy robie to bez tablicy (select name="wartosc") kod działa ale formularz zawsze będzie tym samym formularzem...sposób z tablicą jest dobry ale nie mam pojęcia czemu nie działa ;|


Z nieuwagi zapakowałem zmienne w apostrofy, a oczywiście klucze tablicy miały być w nich zawarte.

  1. $row['id']


Tak jak napisał nospor, jakas_strona.php to w każdym formularzu jest ta sama strona. Co do drugiego rozwiązania, tablica ma postać $_POST['wartosc']['id_usera']. Na stronie wynikowej sprawdź sobie jakie zmienne są przekazywane.

  1. print_r($_GET);
  2. print_r($_POST);


Tak więc dorzucam jeszcze jeden sposób (chyba najprostszy). Wpakuj pomiędzy <form>...</form> dodatkowe pole.

  1. echo '<input type="hidden" name="id_usera" value=".$row[id]." />';


odczytujesz teraz id:

  1. echo $_POST['id_usera'];
elglt
faktycznie, drugie rozwiazanie teraz dziala, dzieki wielkie smile.gif
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.