Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Przypisanie zmiennej do wyboru z formularza
kubatur0
post
Post #1





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 9.04.2010

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


Witam, mam u siebie pole formularza radio ktore wybire 2 wartosci. Czy jest mozliwosc napisania funkcji if ktora bedzie zawierala te wybory ? np
if(value==a) {
bla bla bla el
else {
bla bla bla }}

(IMG:style_emoticons/default/questionmark.gif)

Z gory dzieki za pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
mortus
post
Post #2





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Jest taka możliwość. Przykład:
  1. <?php
  2. ini_set('display_errors', 1);
  3.  
  4. if(!empty($_POST) && isset($_POST['yesorno'])) {
  5. if($_POST['yesorno'] == 'yes') {
  6. $answer = 'yes';
  7. } else {
  8. $answer = 'no';
  9. }
  10. }
  11. echo 'Current answer: ' , isset($answer) ? $answer : 'brak odpowiedzi';
  12. ?>
  13. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
  14. <input type="radio" name="yesorno" value="yes" />Yes<br />
  15. <input type="radio" name="yesorno" value="no" />No<br />
  16. <input type="submit" name="submit" value="Wyślij" />
  17. </form>


Ten post edytował mortus 10.04.2010, 08:28:50
Go to the top of the page
+Quote Post
kubatur0
post
Post #3





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 9.04.2010

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


No dobra to kumam. Troche zle skonstruowalem swoje pytanie. Chodzi mi dokladnie o wybor z radio i po wyborze zeby lista rozwijana sie zmienila odpowiednio. W radio wybieram plec M albo K. i po wyborze M zeby w tej liscie rozwijanej byly jedne wartosci a po wyborze K zeby byly tylko drugie wartosci.

Kod
<?php
if(!empty($_POST) && isset($_POST['plec'])) {
if($_POST['plec'] = M) {
$answer = M;
} else {
$answer = K;
}
} ?>
<?php
if($answer = M) {
echo" <tr><td>Konto dla:</td><td><select name=\"profesja\" style=\"background-color: black; color: white\">
        <option>1</option>
        <option>1</option>
        <option>1</option>
        <option>1</option>
        <option>1</option>
        </select></td></tr>";}
            else {
  echo "<tr><td>Konto dla:</td><td><select name=\"profesja\" style=\"background-color: black; color: white\">
        <option>2</option>
        <option>2</option>
        <option>2</option>
        <option>2</option>
        <option>2</option>
        </select></td></tr>";
      }
      
     ?>

Probuje z czyms takim ale nie dziala.... nie wiem jak to inaczej zrobic i co moze byc zle.

Ten post edytował kubatur0 10.04.2010, 09:27:23
Go to the top of the page
+Quote Post
tehaha
post
Post #4





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


nie czytałem Twojego kodu ale jeżeli chcesz żeby następna lista zmieniała się w zależności od wyboru radio to masz 2 możliwości:
- php - ale wtedy ta zmiana w liście jest możliwa dopiero po przeładowaniu strony
- javascript - zmiana bez przeładowania strony
Go to the top of the page
+Quote Post
kubatur0
post
Post #5





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 9.04.2010

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


Wolalbym bez przeladowania strony, czyli java. Ale nie mam pojecia jak to teraz zrobic...
Go to the top of the page
+Quote Post
mortus
post
Post #6





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Cytat(tehaha @ 10.04.2010, 10:53:59 ) *
nie czytałem Twojego kodu ale jeżeli chcesz żeby następna lista zmieniała się w zależności od wyboru radio to masz 2 możliwości:
- php - ale wtedy ta zmiana w liście jest możliwa dopiero po przeładowaniu strony
- javascript - zmiana bez przeładowania strony
@tehaha A co będzie, jeżeli użytkownik nie będzie miał włączonej obsługi JavaScript?
@kubatur0 Najlepiej zaimplementować najpierw rozwiązanie w PHP, a później zastanowić się nad wykorzystaniem JavaScript-u. Skoro nie wiesz, jak się za to zabrać, to poczytaj o podstawach. Do obsługi pola radio możesz użyć onclick np.
  1. <input type="radio" name="plec" value="kobieta" onclick="wypelnijSelecta(this);" />Kobieta<br/>
Do wstawienia różnych opcji możesz użyć atrybutu innerHTML (np. dla select'a o danym id, którego możesz pobrać za pomocą getElementById), konkretne opcje możesz wygenerować za pomocą pętli po tabeli określonych profesji. Możesz też wypróbować któryś z frameworków JavaScript np. jQuery (powinno to ułatwić pracę). Jeśli kompletnie nie wiesz, o czym piszę, to niestety musisz zacząć od jakiegoś kursu JS.
Go to the top of the page
+Quote Post
tehaha
post
Post #7





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


tu masz działający przykład:

  1. <input type="radio" name="sex" value="M" onclick="java script:second_choice('M');" checked="checked"> M<br/>
  2. <input type="radio" name="sex" value="K" onclick="java script:second_choice('K');"> K<br/>
  3. <div id="choice_k" style="display:none;">
  4. <option>K choice</option>
  5. <option>K choice</option>
  6. <option>K choice</option>
  7. <option>K choice</option>
  8. <option>K choice</option>
  9. </select>
  10. </div>
  11. <div id="choice_m" >
  12. <option>M choice</option>
  13. <option>M choice</option>
  14. <option>M choice</option>
  15. <option>M choice</option>
  16. <option>M choice</option>
  17. </select>
  18. </div>
  19. <script type="text/javascript">
  20. function second_choice(type)
  21. {
  22. var choice_k = document.getElementById('choice_k');
  23. var choice_m = document.getElementById('choice_m');
  24.  
  25. switch(type)
  26. {
  27. case 'M':
  28.  
  29. choice_k.style.display = 'none';
  30. choice_m.style.display = 'block';
  31.  
  32. break;
  33.  
  34. case 'K':
  35.  
  36. choice_k.style.display = 'block';
  37. choice_m.style.display = 'none';
  38.  
  39. break;
  40. }
  41. }


ale jeżeli będziesz to używał tylko to płci to lepiej zamień switch na else if

@mortus oczywiście masz racje z tym, że trzeba uwzględnić czy użytkownik ma obsługę javascript, ale trzeba też się zastanowić czy jest to jakiś krytyczny punkt strony, bo jeżeli to ma być tylko zmiana między: nauczyciel a nauczycielka to chyba żadna strata jeżeli ktoś nie ma javascript
Go to the top of the page
+Quote Post
kubatur0
post
Post #8





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 9.04.2010

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


rozumiem ze po wykorzostaniu tego skryptu strona bedzie sie przeladowywala a wlasnie tego nie chce... ma ktos moze gotowy skrypt czegos takiego ?
Go to the top of the page
+Quote Post
mortus
post
Post #9





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Cytat(kubatur0 @ 10.04.2010, 15:45:39 ) *
rozumiem ze po wykorzostaniu tego skryptu strona bedzie sie przeladowywala a wlasnie tego nie chce... ma ktos moze gotowy skrypt czegos takiego ?

Hmm... Nie strona nie będzie się przeładowywać, jeśli użyjesz rozwiązania tehaha. Jeżeli Ci się przeładowuje, to pewnie coś zrobiłeś źle.
Go to the top of the page
+Quote Post
tehaha
post
Post #10





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


@kubatur0 wklej to po prostu do edytora zapisz jako html i zobacz jak działa....nie wiem co tu jest niejasne, jeżeli chociaż trochę znasz php i html/css to powinno być dość oczywiste jak to działa
Go to the top of the page
+Quote Post
kubatur0
post
Post #11





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 9.04.2010

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


O jaaaa dziala ... Dzieki stary (IMG:style_emoticons/default/smile.gif)
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: 24.12.2025 - 12:59