Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Przekazywanie w value dwóch wartości
Barcelona
post 25.03.2012, 22:59:11
Post #1





Grupa: Zarejestrowani
Postów: 322
Pomógł: 15
Dołączył: 29.01.2010

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


Witam, mam przykładowy formularz.
  1. echo '<form action="" method="post">';
  2. $result = mysql_query("SELECT DISTINCT * FROM userzy ORDER BY nazwisko ASC")
  3.  
  4. echo '<select name="user" id="user">';
  5.  
  6. while($drop = mysql_fetch_array( $result ))
  7. {
  8. echo '<option value="'.$drop['id'].' '.$drop['nazwisko'].'">'.$drop['nazwisko'].' '.$drop['imie'].'</option>';
  9. }
  10. echo '</select>';
  11. echo '</form>'


Z powyższego przykładu pobieram z bazy wszystkich userów i wrzucam ich do selecta. Moim zamysłem jest aby w value dać nie tylko id pracownika, ale również jego nazwisko, bądź imie.

Value wyglądało by tak
  1. <option value="12 Nowak">Nowak Jan</option>


Teraz dane z tego formularza lecą do innego pliku.
Tam chciałbym dane z selecta podzielić za pomocą str_split() na 12 oraz Nowak.
Dzięki temu uniknę kolejnego zapytania do bazy.

Co sądzicie o takim rozwiązaniu ?

Ten post edytował Barcelona 25.03.2012, 23:08:30
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Rysh
post 25.03.2012, 23:05:42
Post #2





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

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


Nie lepiej rozdzielić te dane przecinkiem, a potem potraktować te dane explode?
Poza tym w 5 linijce nie zamykasz echo.


--------------------
Go to the top of the page
+Quote Post
Barcelona
post 25.03.2012, 23:10:05
Post #3





Grupa: Zarejestrowani
Postów: 322
Pomógł: 15
Dołączył: 29.01.2010

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


Cytat
Nie lepiej rozdzielić te dane przecinkiem, a potem potraktować te dane explode?

Nie chodzi o sposób podziału, tylko o mechanizm. Czy jest on poprawny?
Cytat
Poza tym w 5 linijce nie zamykasz echo.

Literówka, pisane z palca smile.gif
Go to the top of the page
+Quote Post
Rysh
post 25.03.2012, 23:14:54
Post #4





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

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


Ja osobiście nie widzę potrzeby żeby wsadzać tam inne dane, ale może to dlatego że nie wiem co później chcesz z tym zrobić. Bo niby jak masz niby później uniknąć kolejnego zapytania? Chyba, że tworzysz formularz z usunięciem jakiegoś człowieka, a następnie na następnej stronie wyświetlasz: "Czy na pewno chcesz usunąć usera Jan Kowalski?" Wtedy w sumie faktycznie jedno zapytanie mniej, ale czy nie lepiej wtedy takich danych walnąć w hidden?


--------------------
Go to the top of the page
+Quote Post
Barcelona
post 25.03.2012, 23:21:57
Post #5





Grupa: Zarejestrowani
Postów: 322
Pomógł: 15
Dołączył: 29.01.2010

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


Cytat
Czy na pewno chcesz usunąć usera Jan Kowalski?

No właśnie coś w ten deseń. Nie chce robić zapytań tylko po to żeby wyświetlić jak user o danym id ma na nazwisko.

Cytat
ale czy nie lepiej wtedy takich danych walnąć w hidden?


hidden nie sprawdzi się w select, chyba że wartość value była by kopiowana za pomocą JS. Ale to za dużo kombinacji.

EDIT://
Czy do wydobycia samego id ze string'a "12 Nowak" wystarczy zastosować rzutowanie na int?

Ten post edytował Barcelona 25.03.2012, 23:37:20
Go to the top of the page
+Quote Post
Rysh
post 25.03.2012, 23:43:34
Post #6





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

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


Faktycznie z hidden to dowaliłem smile.gif

Co do edit, powinno zadziałać samo rzutowanie na int. Ja jednak na Twoim miejscu dał:
  1. echo "<option value="$id;$imie;$nazwisko">$nazwisko $imie</option>";

A później walną explode ; i dopiero rzutował na inta. I masz elegancko dane w tablicy smile.gif

Ten post edytował Rysh 25.03.2012, 23:43:45


--------------------
Go to the top of the page
+Quote Post
Barcelona
post 26.03.2012, 10:07:41
Post #7





Grupa: Zarejestrowani
Postów: 322
Pomógł: 15
Dołączył: 29.01.2010

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


I chyba tak zrobie smile.gif Dzięki
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 10:32