Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: WAŻNE PYTANIE DOT. ARRAY
Forum PHP.pl > Forum > Przedszkole
Gość_Łukasz
Witam serdecznie,

Mam mały problem i liczę, że ktoś będzie w stanie mi pomóc.

Przygotowałem skrypt w php+Javascript. Tworzy on macierz przycisków "radio", w oparciu o poziom oceniania poszczególnych rozwiązań (w formie skryptu).

Aby to wyjaśnić, podam przykład (znaczek "O" oznacza przycisk typu input type=radio):


1 2 3
O-O-O opcja 1

1 2 3
O-O-O opcja 2

1 2 3
O-O-O opcja 3 (każdej opcji przyporządkowana jest tylko jedna wartość oceny 1,2, lub 3)



Wystawiłem każdemu przyciskowi odpowienie NAME:

opcja11 - opcja12 - opcja13
opcja21 - opcja22 - opcja23
opcja31 - opcja32 - opcja33


W związku z tym, nie mogą istnieć dwie lub więcej opcji tak samo oceniane (wykorzystanie opcji DISABLED oraz CHECKED).

W ramach formularza wysyłam otrzymane dane i.... przykładowo pojawią mi się wyniki (w formie zmiennych otrzymanych): opcja12=12 (wartość zmiennej równa jest jej fragmentowi z nazwy), opcja23=23 i opcja11=11.

Na podstawie otrzymanych zmiennych, czy istnieje możliwość odkodowania otrzynamych wyników do następującej postaci":

opcja11 -> pierwsza linia - wartosc=1
opcja23 -> druga linia - wartosc=3
opcja32 -> trzecia linia - wartosc=2 (*)

W skrócie: czy istnieje opcja sprawdzania nazwy zmiennej w oparciu o operacje FOR...? Wiem, że opcja: $zmienna[x][y] nie działa...

Czy można jakoś sprawdzić, czy zmienna np. "opcja23" istnieje, wiedząc, że macież ma formę prostokąta 3 na 3? (zakładam x i y na poziomie od jeden do trzy -> więc istnieje 9 możliwości w ramach array).

Innymi słowami:

W wyniku wysłania formularza otrzymujemy, że wartość opcja11, opcja23 oraz opcja32 istnieją (*). Jak można to sprawdzić ich istnienie (zmiennych) w ramach php?

Dziękuję!

Łukasz
Zbłąkany
Jesli wysylasz formularz to zmienne sa zapisane w tablicy $_POST lub $_GET, zaleznie jakiej metodyuzyles do wyslania formularza smile.gif Jesli chcesz sprawdzic czy zmienna istnieje to radzej zrobic za pomocaisset . A jesli chcesz odebrac ten kawalek zmiennej to propouje uzyc funkcji, po uprzednim sprawdzeniu czy zmienna istnieje
substr . Poczytaj tez komentarze madrzejszych od nas ludzi ba sa tam ciekawe przyklady skryptow smile.gif
Gość_Łukasz
Cześć Zbłąkany.

Właśnie w tym mam problem. Nie potrafię stworzyć założenia IF dla takiej funkcji w php (w Javascript używam "+x+y+"), która potrafiłaby sprawdzić istnienie określonej zmiennej.

Jak słusznie zauważyłeś metoda isset pozwala na sprawdzenie istnienia określonej zmiennej, ale problemem jest zdefiniowanie pętli dla "generowania zmiennych".

Założeniem mojego skryptu jest możliwość szeregowania stopnia ważności prezentowanych opcji. Gdy jest np. siedem opcji do wyboru, wówczas każdej można przypisać unikalną wartość od 1 do 7. Gdy jest dziesięć opcji wyboru, wówczas możliwości wynoszą od 1 do 10. Jak na przykładzie:

opcja11 - opcja12 - opcja13 - ...... - opcja110
opcja21 - opcja22 - opcja23 - ...... - opcja210
opcja31 - opcja32 - opcja33 - ...... - opcja310
...........
opcja101 - opcja102 - opcja103 - .......- opcja1010

Dla większej liczby opcji konieczne jest więc stworzenie funkcji, która sprawdza czy w ramach dziesiątej linii wybrana została opcja101 czy np. 102.

Jak ją zrobić?

$liczba=10;

for ($i=1; $i<=$liczba; $i++)
{

for ($j=1; $j<=$liczba; $j++)
{
echo "OK!: ";
if (isset($atrybut[$i][$j])) <- problematyczna linia
$wartosc="Istnieje ta zmienna";

}

}

Dziękuję za pomoc.

Łukasz
silent
  1. <?php
  2.  
  3. $opcja12=1;
  4. $opcja14=1;
  5.  
  6. $liczba=10;
  7. for ($i=1; $i<=$liczba; $i++) {
  8. for ($j=1; $j<=$liczba; $j++) {
  9. $zmienna='opcja'.$i.$j;
  10. if (isset($$zmienna))
  11. print 'Zmienna $'.$zmienna.' istnieje<br>';
  12. }
  13. }
  14.  
  15. ?>

Dostosuj sobie do swoich potrzeb.
Gość_Łukasz
Dziękuję, Silent.

O to właśnie mi chodziło;)
rogrog
dodam że to nie są żadne tablice i nie wiem dlaczego taki tytuł wątku...

więcej możesz pooczytać w manualu w rozdziale Variable Variables (zmienne zmienne)
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.