Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Skracanie wyrazenia if
JamalBIG
post
Post #1





Grupa: Zarejestrowani
Postów: 496
Pomógł: 1
Dołączył: 16.01.2008
Skąd: Świnoujście

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


Witam

Czy mozna 'jakos' skrocic takie wyrazenie?:
  1. <?php
  2. if ($ocena == 1) {
  3.  $checked1 = 'checked';
  4. } elseif ($ocena == 2) {
  5.  $checked2 = 'checked';
  6. } elseif ($ocena == 3) {
  7.  $checked3 = 'checked';
  8. } elseif ($ocena == 4) {
  9.  $checked4 = 'checked';
  10. } elseif ($ocena == 5) {
  11.  $checked5 = 'checked';
  12. }
  13. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 18)
Lejto
post
Post #2





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 48
Dołączył: 23.05.2007

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


użyć porostu OR?
Go to the top of the page
+Quote Post
v1t4n
post
Post #3





Grupa: Zarejestrowani
Postów: 111
Pomógł: 16
Dołączył: 19.02.2005
Skąd: Dębica

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


Przypuszczam ze robisz to do selecta. Jesli tak to spróbój na tablicach (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
.radex
post
Post #4





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

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


switch!

  1. <?php
  2. switch($ocena)
  3. {
  4. case 1: $checked1 = 'checked'; break;
  5.  
  6. case 2: $checked2 = 'checked'; break;
  7.  
  8. //itd.
  9. }
  10. ?>


Edit:

Panowie! Jeśli to ma być tylko te 5 wartości to po kiego grzyba syfić kod małoczytelnym kodem?

Ten post edytował .radex 7.05.2009, 19:53:14
Go to the top of the page
+Quote Post
kirex
post
Post #5





Grupa: Zarejestrowani
Postów: 16
Pomógł: 4
Dołączył: 3.03.2008

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


  1. <?php
  2. ${'checked'.$ocena} = 'checked';
  3. ?>
Go to the top of the page
+Quote Post
Lion_87
post
Post #6





Grupa: Zarejestrowani
Postów: 850
Pomógł: 120
Dołączył: 15.02.2007
Skąd: Łódź

Ostrzeżenie: (10%)
X----


A może tak?
  1. <?
  2. $ocena="4";
  3. for($a=1;$a<=5;$a++){
  4. if($ocena==$a){${checked.$a}="checked";}
  5. }
  6.  
  7. ?>
  8. <input type="checkbox" <? echo $checked1; ?>>
  9. <input type="checkbox" <? echo $checked2; ?>>
  10. <input type="checkbox" <? echo $checked3; ?>>
  11. <input type="checkbox" <? echo $checked4; ?>>
  12. <input type="checkbox" <? echo $checked5; ?>>
Go to the top of the page
+Quote Post
decha-design
post
Post #7





Grupa: Zarejestrowani
Postów: 415
Pomógł: 46
Dołączył: 26.05.2007
Skąd: Sandomierz

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


Trochę warningów Ci parser PHP wysypie przy tym twoim kodzie, @Lion_87
Go to the top of the page
+Quote Post
JamalBIG
post
Post #8





Grupa: Zarejestrowani
Postów: 496
Pomógł: 1
Dołączył: 16.01.2008
Skąd: Świnoujście

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


Sporo tych propozycji, dzeki za zainteresowanie ale teraz sam nie wiem ktory wybrac bo np ze switch raczej odpada bo 'niezmniejsza' mi kodu ale petla z uzyciem funkcji for wyglada interesujaco
Go to the top of the page
+Quote Post
kirex
post
Post #9





Grupa: Zarejestrowani
Postów: 16
Pomógł: 4
Dołączył: 3.03.2008

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


@JamalBIG a po jakiego grzyba Ci ten for ? masz jedną zmienną $ocena, która zawiera wartości od 1 do 6 czyli w zupełności wystarczy Ci samo

  1. <?php
  2. ${'checked'.$ocena} = 'checked';
  3. ?>


powiedzmy, że ocena bedzie miała wartość 4 to z w/w wyrażenia dostaniesz $checked4 = 'checked'


Ps. no chyba, że od razu chcesz utworzyć pozostałe chcecked.. z pustymi wartościami (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował kirex 7.05.2009, 20:18:14
Go to the top of the page
+Quote Post
Lion_87
post
Post #10





Grupa: Zarejestrowani
Postów: 850
Pomógł: 120
Dołączył: 15.02.2007
Skąd: Łódź

Ostrzeżenie: (10%)
X----


Cytat
Trochę warningów Ci parser PHP wysypie przy tym twoim kodzie, @Lion_87


no całe 0 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

racja racja MOJA wina (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) no może 1

Ten post edytował Lion_87 7.05.2009, 21:04:53
Go to the top of the page
+Quote Post
kirex
post
Post #11





Grupa: Zarejestrowani
Postów: 16
Pomógł: 4
Dołączył: 3.03.2008

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


@Lion_87 wywali 6 NOTICE (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

i błąd przy ${checked.$a} (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował kirex 7.05.2009, 20:20:28
Go to the top of the page
+Quote Post
decha-design
post
Post #12





Grupa: Zarejestrowani
Postów: 415
Pomógł: 46
Dołączył: 26.05.2007
Skąd: Sandomierz

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


to jeden piernik (IMG:http://forum.php.pl/style_emoticons/default/haha.gif) ważne, że wywali =)
Go to the top of the page
+Quote Post
Crozin
post
Post #13





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Jak rozumieim masz zadeklarowaną stałą: checked (o wartości checked) tylko nam jej nie pokazujesz?

Albo zapomniałeś włączyć raportowania błędów typu E_NOTICE?
Go to the top of the page
+Quote Post
JamalBIG
post
Post #14





Grupa: Zarejestrowani
Postów: 496
Pomógł: 1
Dołączył: 16.01.2008
Skąd: Świnoujście

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


Dzieki @kirex
  1. <?php
  2. ${'checked'.$ocena} = 'checked';
  3. ?>


Dziala pieknie i byl bym bardzo wdzieczny za 'wytlumaczenie' mi tego kodu
Go to the top of the page
+Quote Post
Crozin
post
Post #15





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


PHP to taki język, który umożliwia dynamiczne tworzenie nazw zmienych. Innymi słowy utworzy zmienną o nazwie checked + wartość ze zmiennej $ocena o wartości checked
Go to the top of the page
+Quote Post
Lion_87
post
Post #16





Grupa: Zarejestrowani
Postów: 850
Pomógł: 120
Dołączył: 15.02.2007
Skąd: Łódź

Ostrzeżenie: (10%)
X----


Cytat
@Lion_87 wywali 6 NOTICE tongue.gif

i błąd przy ${checked.$a} winksmiley.jpg


hmmmm jednak nadal nierozumiem...mozesz bardziej wytłumaczyć kirex?

Ten post edytował Lion_87 7.05.2009, 20:54:54
Go to the top of the page
+Quote Post
kirex
post
Post #17





Grupa: Zarejestrowani
Postów: 16
Pomógł: 4
Dołączył: 3.03.2008

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


@Lion_87 checked w nawiasie klamrowym musi być w "ciapkach", czyli łączysz string ze zmienną 'chceked' . $ocena i to podstawiasz pod ${ ... }

Jeśli zaś w Twoim przypadku checked było stałą, to powinieneś napisać ją dużymi literami (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował kirex 7.05.2009, 21:03:17
Go to the top of the page
+Quote Post
Lion_87
post
Post #18





Grupa: Zarejestrowani
Postów: 850
Pomógł: 120
Dołączył: 15.02.2007
Skąd: Łódź

Ostrzeżenie: (10%)
X----


Cytat
@Lion_87 checked w nawiasie klamrowym musi być w "ciapkach", czyli łączysz string ze zmienną 'chceked' . $ocena i to podstawiasz pod ${ ... }

Jeśli zaś w Twoim przypadku checked było stałą, to powinieneś napisać ją dużymi literami winksmiley.jpg


No to kapuje ale czemu 6 NOTICE?

EDIT
domyślam sie może ze przez to?
Kod
<? echo $checked1; ?>
itd.

Ten post edytował Lion_87 7.05.2009, 21:14:35
Go to the top of the page
+Quote Post
kirex
post
Post #19





Grupa: Zarejestrowani
Postów: 16
Pomógł: 4
Dołączył: 3.03.2008

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


Cytat(Lion_87 @ 7.05.2009, 20:51:29 ) *
A może tak?
  1. <?
  2. $ocena="4";
  3. for($a=1;$a<=5;$a++){
  4. if($ocena==$a){${checked.$a}="checked";}
  5. }
  6.  
  7. ?>
  8. <input type="checkbox" <? echo $checked1; ?>>
  9. <input type="checkbox" <? echo $checked2; ?>>
  10. <input type="checkbox" <? echo $checked3; ?>>
  11. <input type="checkbox" <? echo $checked4; ?>>
  12. <input type="checkbox" <? echo $checked5; ?>>

Pomyliło mi się, będą 4 NOTICE, czyli $checked(1,2,3,5) ponieważ ich nie zadeklarowałeś
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: 18.09.2025 - 23:35