Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> tablica w zmiennej
Mich@ł
post
Post #1





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 30.04.2006

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


Mam pewien problem techniczny i nie za bardzo wiem jak go rozwiązać (IMG:style_emoticons/default/smile.gif)

A więc tak, mam tablice:
  1. $cos[] = 'cos1';
  2. $cos[] = 'cos2';
  3. $cos[] = 'cos3';
  4. $cos[] = 'cos4';


Z tablicy przy pomocy pętli generuje kilka inputów typu checkbox:
  1. <input type="checkbox" name="cos_1" value="1">
  2. <input type="checkbox" name="cos_2" value="2">
  3. <input type="checkbox" name="cos_3" value="3">
  4. <input type="checkbox" name="cos_4" value="4">


I teraz mam pewien problem ponieważ zastanawiam się jak aktywne checkboxy poskłądać do jednej zmiennej typu:
  1. $jakas_zmienna = $_POST[cos_1].'|'.$_POST[cos_2].'|'.$_POST[cos_3];


(tablica ma dość sporo rekordów dlatego ręcznie się nie opłaca tego wpisywać)

Zapewne rozwiązanie tego problemu jest jakieś banalne tyle że na najprostsze rozwiązania najtrudniej wpaść (IMG:style_emoticons/default/smile.gif)

Macie może jakieś pomysły na rozwiązanie mojego problemu (IMG:style_emoticons/default/smile.gif) ?

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Fixus
post
Post #2





Grupa: Zarejestrowani
Postów: 295
Pomógł: 9
Dołączył: 8.02.2006

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


a nie możesz po prostu przejechać wszystkich checkboxów i aktywne wrzucić do nowej mniejszej tablicy ? (IMG:style_emoticons/default/smile.gif)

nawiasem mówiąc postępując wg. Twojego sposobu stworzysz łańcuch znaków czyli 1010101011100 w zależności czy zaznaczone czy nie, dlatego proponuje mój sposób.

np. pętla foreach załatwi sprawę

Ten post edytował Fixus 2.11.2009, 13:40:53
Go to the top of the page
+Quote Post
phpion
post
Post #3





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Generuj sobie pola w postaci tablicy czyli:
  1. <input type="checkbox" name="cos[]" value="1">
  2. <input type="checkbox" name="cos[]" value="2">
  3. <input type="checkbox" name="cos[]" value="3">
  4. <input type="checkbox" name="cos[]" value="4">

Po przesłaniu formularza wyświetli tablicę $_POST:
  1. print_r($_POST);

aby zobaczyć w jakiej formie dostaniesz dane. Dalej już sobie poradzisz; jeżeli nie to spójrz na to:
  1. if (isset($_POST['cos']) && is_array($_POST['cos'])) {
  2. $jakas_zmienna = implode('|', $_POST['cos']);
  3. }
  4. else {
  5. $jakas_zmienna = '';
  6. }
Go to the top of the page
+Quote Post
Mich@ł
post
Post #4





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 30.04.2006

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


Dzięki za podpowiedzi (IMG:style_emoticons/default/smile.gif)

Osobiście wpadłem na jeszcze coś innego:
  1. for ($ih = 0; $ih < $_POST['ile_rekordow']; $ih++) {
  2. if (isset($_POST['cos_'.$ih])) {
  3. $zmienna1 = $_POST['cos_'.$ih].'|'.$zmienna1;
  4. }
  5. }
  6. echo rtrim ($zmienna1, '|');


i akurat to spełnia moje wymagania (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 18:58