Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML]Nadanie poszczególnemu polu formularza unikalnego ID
Forum PHP.pl > Forum > Przedszkole
Lomek
Cześć. Mam baardzo spory formularz, który jest tworzony przez pętle w php i mam pytanie: skoro argument name się powtarza, to czy istnieje możliwość nadania w innym argumencie unikalnego ID dla danego pola w formularzu? Na przykład żeby to wyglądało tak:

  1. <input type="text" name="nazwa_ktora_sie_powtarza" id="unilane_ID" />


Czy istnieją takie sposoby? Jeżeli nie wyraziłem się dość jasno, to załączam screena, będę chciał to wykorzystać w dziale Pracownicy. Wszystkie pola z inputami są generowane właśnie przez pętlę o której wspominałem wcześniej, i chcę nadać unikalne ID dla każdego z pól abym mógł potem zaktualizować odpowiedni rekord w bazie danych MySQL.
.radex
Możesz przecież zrobić coś takiego:

  1. <input name="foo[]">
  2. <input name="foo[]">
  3. <input name="foo[]">


I wtedy w PHP $_POST['foo'] wypluje tablicę.

Chyba o to Ci tak naprawdę chodzi... Nie jestem pewien, czemu chcesz nadawać unikalne (jak rozumiem, losowe) identyfikatory, ale w PHP mt_rand() produkuje losowe liczby.
Lomek
Nie chodzi mi o losowe liczby, właśnie chcę przypisywać konkretne liczby, a dokładniej to ID rekordów. Na przykład jak mam na załączonym obrazku jednego pracownika, to wszystkie pola do wpisu by miały jako ten unikalny ID właśnie ID rekordu z bazy danych. Możesz bardziej mi wytłumaczyć o co chodzi z tym foo[] w argumencie name? Jeszcze się z tym nie spotkałem.
nienarodzony
Wydaje mi się, że chcesz wyjąć te unikalne ID z bazy. foo[] oznacza tablicę.
Przy wyświetlaniu formularza w php sobie zrób:
  1. <input type="text" name="$id_pracownika" />


i potem jak wyciągniesz z $pracownicy = $_POST['foo'] dostaniesz tablicę, z której będziesz mógł wybierać poszczególnych pracowników przez
$pracownicy[123213] itd
.radex
Cytat
Możesz bardziej mi wytłumaczyć o co chodzi z tym foo[] w argumencie name? Jeszcze się z tym nie spotkałem.


Jeśli prześlesz z formularzem kilka inputów o tym samym name="" (kończącym się na '[]'), to w PHP odbierzesz tablicę.

Dla przykładu gdy masz formularz z:

  1. <input name=foo[] value=a>
  2. <input name=foo[] value=b>
  3. <input name=foo[] value=c>


to w PHP $_POST['foo'] będzie równe array('a', 'b', 'c')

Rozumiesz? To jest po prostu sposób, aby móc mieć zmienną liczbę inputów o tym samym typie (np. w tabelce jak u Ciebie).


Cytat(Lomek @ 27.04.2011, 22:24:15 ) *
Nie chodzi mi o losowe liczby, właśnie chcę przypisywać konkretne liczby, a dokładniej to ID rekordów. Na przykład jak mam na załączonym obrazku jednego pracownika, to wszystkie pola do wpisu by miały jako ten unikalny ID właśnie ID rekordu z bazy danych.


No to nadaj name="" inputów: pracownik[4], pracownik[6] etc. Tak też można i tu też dostaniesz tablicę, ale:

array(4 => 'foo', 5 => 'bar', ...)
Lomek
Dobra, działa i rozumiem o co chodzi smile.gif Dziękuje za pomoc, przydała się.
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.