Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: tablica w zmiennej
Forum PHP.pl > Forum > PHP
Mich@ł
Mam pewien problem techniczny i nie za bardzo wiem jak go rozwiązać 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ść smile.gif

Macie może jakieś pomysły na rozwiązanie mojego problemu smile.gif?

Fixus
a nie możesz po prostu przejechać wszystkich checkboxów i aktywne wrzucić do nowej mniejszej tablicy ? 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ę
phpion
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. }
Mich@ł
Dzięki za podpowiedzi 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 winksmiley.jpg
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.