Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> WAŻNE PYTANIE DOT. ARRAY
-Gość_Łukasz-
post 21.10.2004, 01:04:11
Post #1





Goście







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
Go to the top of the page
+Quote Post
Zbłąkany
post 21.10.2004, 07:03:18
Post #2


Administrator serwera


Grupa: Developerzy
Postów: 521
Pomógł: 13
Dołączył: 2.04.2004
Skąd: 52°24' N 16°56' E

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


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


--------------------
Środowisko: Gentoo 2008.0 | Apache | PHP5 | PostgreSQL | MySQL | Postfix
Workstation: Gentoo 2008.0 | Firefox
Thomas Alva Edison: "Aby coś wynaleźć wystarczy odrobina wyobraźni i sterta złomu ..."
Odpowiedź na każde pytanie typu "Jak ...": "Nie da się, to nie PostgreSQL"
Go to the top of the page
+Quote Post
-Gość_Łukasz-
post 21.10.2004, 12:40:21
Post #3





Goście







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
Go to the top of the page
+Quote Post
silent
post 21.10.2004, 12:54:58
Post #4





Grupa: Zarejestrowani
Postów: 127
Pomógł: 0
Dołączył: 18.08.2004
Skąd: Jastrzębie Zdrój

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


  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 to the top of the page
+Quote Post
-Gość_Łukasz-
post 21.10.2004, 13:03:12
Post #5





Goście







Dziękuję, Silent.

O to właśnie mi chodziło;)
Go to the top of the page
+Quote Post
rogrog
post 21.10.2004, 14:20:23
Post #6





Grupa: Zarejestrowani
Postów: 602
Pomógł: 1
Dołączył: 3.04.2004
Skąd: Trójmiasto (Gdańsk)

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


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)


--------------------
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: 13.08.2025 - 23:11