Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML]Nadanie poszczególnemu polu formularza unikalnego ID
Lomek
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 20.08.2009

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
.radex
post
Post #2





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

Ostrzeżenie: (0%)
-----


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.

Ten post edytował .radex 27.04.2011, 20:53:13


--------------------
blog | Tadam — minutnik do Pomodoro na Maka :)
Go to the top of the page
+Quote Post
Lomek
post
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 20.08.2009

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
nienarodzony
post
Post #4





Grupa: Zarejestrowani
Postów: 17
Pomógł: 1
Dołączył: 31.07.2010

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
.radex
post
Post #5





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

Ostrzeżenie: (0%)
-----


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', ...)

Ten post edytował .radex 27.04.2011, 22:08:30


--------------------
blog | Tadam — minutnik do Pomodoro na Maka :)
Go to the top of the page
+Quote Post
Lomek
post
Post #6





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 20.08.2009

Ostrzeżenie: (0%)
-----


Dobra, działa i rozumiem o co chodzi smile.gif Dziękuje za pomoc, przydała się.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 21:47