Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML]pola select i foreach
Forum PHP.pl > Forum > Przedszkole
jamesb
Witam

w pętli odczytuje z bazy i tworze pola select. Teraz chcialbym przy zmianie danego selecta wiedziec który zmienilem.
Czyli tak

<select name="nazwa[]">
<option name="1">
<option name="2">
</select>
<select name="nazwa[]">
<option name="1">
<option name="2">
</select>
.
.
.itd

teraz che odczytac to porze

foreach($_POST['nazwa'] as $nazwa) i tutaj musze wiedziec z którego selecta to wyszlo zeby dobrze do bazy wpisac

nie wiem czy sie tak da ?

ewentualnie alternatywa zamiast nazwa[] wpisac nazwa1,nazwa2,itd. tylko trzeba cos dopisac bo nie wiadomo ile bedzie tych selectów, w kazdym razie to jest do zrobienia tylko tak jakos na około;)

Jeszcze pytanko w php chyba nie bardzo da sie odczytac atrybut id z htmla??
Spawnm
zobacz:
  1. <?php
  2. print_r($_POST);
  3. ?>
jamesb
hmm nie wiem jak to ugrysc print_r

zrobiłem tak ze wpisuje do bazy wartości z wszystkich pól select (a nie tylko z tego który zmieniam). Dodatkowo sprawdzam czy dany select istnieje bo gdy jest wybrana jedna z opcji to select ustawiam na "disable" wtedy nie jest on przesylany w $_POST.

Kod
<form>
<select name="nazwa_select_1"> gdzie 1,5, itp - wartosc id z bazy
   <option name="1">
   <option name="2">
</select>
<select name="nazwa_select_5">
   <option name="1">
   <option name="2">
</select>
   .
.
.
<input type="hidden" name="id_select[]" value="id"> - ta sama wartosc id z bazy co wyzej
</form>


foreach($_POST['id_select'] as $id_select) {
$nazwa_select = "nazwa_select_" . $id_select;
if(!isset($_POST[$nazwa_select])) continue;   //gdy nie ma selecta o danym id - "disable"
mysql_query = ("UPDATE tabela SET select = $_POST[$nazwa_select] WHERE id_select = $id_select");
}



ogólnie działa ale czy to jest optymalny kod;)
Spawnm
Używaj bbcode.
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.