Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: jak zrobic zeby wybrany radio button
Forum PHP.pl > Forum > PHP
SoulRipper
temat wszystko tlumaczy.

skrypt pobiera z mysql dane i kazdy rekord przypisuje do osobnego "radio button"

dalej chce zrobic tak ze jak znaznacze jakis radio to zostanie zapisana zmienna sesyjna ktora przetrwa reload strony i z powrotem zaznaczy poprzednio wybrany element.Problem w tym ze mi to nie dziala. Wartosc do zmiennej jest przypisana poprawnie jednak nie wiem jak to zrobic zeby konkretny radio byl zaznaczony.
blink.gif

kodzik:
  1. <?php
  2. while ($show_submenu = mysql_fetch_array($count_submenu)) //powiedzmy ze mysql_fetch_array($count_submenu) wyniesie 5
  3.     {
  4.         if (!isset($_SESSION['referer']))
  5.         {    
  6.             echo &#092;"<input type='radio' name='id' value='$show_submenu[0]' >$show_submenu[1]&nbsp;&nbsp;&nbsp;\";
  7.         }
  8.         else
  9.         {
  10.             echo &#092;"<input type='radio' name='id' value=\".$_SESSION['referer'].\" checked>$show_submenu[1]&nbsp;&nbsp;&nbsp;\";
  11.         }
  12.     }
  13.  echo $_SESSION['referer'] = $_POST['id'];
  14. ?>
SzajbuS
  1. <INPUT TYPE="radio" NAME="name" VALUE="value" CHECKED>
SoulRipper
LOL

to to i ja wiem, ale teraz powiedz mi jak cos takiego zastosowac kiedy iles tam radio buttonow jest automatycznie tworzona za pomaca petli?
SzajbuS
rzeczywiscie, nie zauwazylem tego 'checked' w Twoim kodzie smile.gif

a co do problemu, to wydaje mi sie ze pies jest pogrzebany w zapisie warunku if, ktorego wynik nie zmienia sie w zadnym przebiegu petli. w efekcie w zrodle html strony masz pewnie wszystkie radio'sy z atrybutem checked (lub zaden).
crash
U mnie dziala cos takiego:

  1. <?php
  2. while($show_submenu = mysql_fetch_array($count_submenu))
  3. {
  4. echo '<input type=\"radio\" '.(isset($_SESSION['referer']) ? 'checked=\"checked\"' : '').' name=\"id[]\" value=\"'.$show_submenu[0].'\">'.$show_submenu[1].'&nbsp;&nbsp;&nbsp;';
  5. }
  6. ?>


Zamiast nazwy id dalem id[], wiadomo chyba po co...
SoulRipper
cos nie dziala smile.gif Kiedy zaznacze opcje i dam OK to zaznacza sie automatycznie ostatni radio.

przyznam sie ze niebardzo sie orientujew Twoim zapisie. Uzykles titaj skrotow ktorych jeszcze nie sudiowalem ale wydaje mi sie ze to ? to ejst instrukcja if(moze sie myle), oraz czym sie rozni id od id[] (tablica, ale po co?)
crash
Operator trojznakowy:
  1. <?php
  2. (jesli_spelniony_warunek ? zrob_to : w_przeciwnym_wypadku_to)
  3. ?>

Nazwe pola ustawilem jako tablice bo.. hmm.. bo sie chyba rozpedzilem snitch.gif

To moze tak:
  1. <?php
  2. while($show_submenu = mysql_fetch_array($count_submenu))
  3. {
  4. echo '<input type=\"radio\" '.(($_POST[id] == $show_submenu[0]) ? 'checked=\"checked\"' : '').' name=\"id\" value=\"'.$show_submenu[0].'\">'.$show_submenu[1].'&nbsp;&nbsp;&nbsp;';
  5. }
  6. ?>
SoulRipper
oo bardzo ladnie dziala, dzieki smile.gif

niestety sad.gif pojawil sie jeszcze jeden, troche powzniejszy problem,
podam odrazu caly kod bo barkuje mi czasu na szczegolowy opis:
  1. <?php
  2.  
  3. include &#092;"../../code.php\";
  4. include &#092;"../../conf.php\";
  5. con();
  6. $count_submenu = mysql_query(&#092;"SELECT * FROM link WHERE submenu='1'\");
  7. $count_submenu_result = mysql_num_rows($count_submenu);
  8.  
  9. $submenu_items = mysql_query(&#092;"SELECT * FROM submenu\");
  10. $submenu_items_count = mysql_num_rows($submenu_items);
  11.  
  12. if ($count_submenu == 0)
  13. {  
  14. echo &#092;"Brak linków odwoływujących się do submenu\";
  15. }
  16. else
  17. {
  18.  
  19. while($show_submenu = mysql_fetch_array($count_submenu))
  20. {
  21. echo '<input type=\"radio\" '.(($_POST[id] == $show_submenu[0]) ? 'checked=\"checked\"' : '').' name=\"id\" value=\"'.$show_submenu[0].'\">'.$show_submenu[1].'&nbsp;&nbsp;&nbsp;';
  22. }
  23.  
  24. }
  25. echo &#092;"<BR><BR><BR>\";
  26. if ($_POST['dalej'] == &#092;"OK\")
  27. {
  28. $ilosc = 0;
  29.  
  30. while ($ilosc < $_POST['ilosc'])
  31. {
  32. $ilosc++;
  33. $art_id = $count_submenu_result+$submenu_items_count+$ilosc+1;
  34.  
  35. echo &#092;" Nazwa <input type='text' name='nazwa_$ilosc'>
  36. ID arta:<input type='text' name='art_id_$ilosc' value=$art_id>
  37. Kolejnosc:<input type='text' name='kolejnosc_$ilosc' value='$ilosc' width=4><BR>&#092;";
  38.  
  39. echo $_SESSION['nazwa_'.$ilosc] = $_POST['nazwa_'.$ilosc];
  40. echo $_SESSION['art_id_'.$ilosc] = $_POST['art_id_'.$ilosc];
  41. echo $_SESSION['kolejnosc_'.$ilosc] = $_POST['kolejnosc_'.$ilosc];
  42.  
  43. }
  44. $_SESSION['ilosc'] = $_POST['ilosc'];
  45. }
  46.  
  47. echo &#092;"<BR><BR><BR><Br>
  48. <input type='text' name='ilosc'><BR>
  49. <input type='submit' name='dalej' value='OK'>&#092;" ;
  50.  
  51. echo &#092;"<input type='submit' name='accept' value='Dodaj'><BR>\";
  52.  
  53. if ($_POST['accept'] == &#092;"Dodaj\")
  54. {
  55. $ile = 0;
  56. while ($ile < $_SESSION['ilosc'])
  57. {
  58. $ile++;
  59. $nazwa = $_SESSION['nazwa_'.$ile];
  60.  $id = $_SESSION['art_id_'.$ile];
  61. $kolejnosc = $_SESSION['kolejnosc_'.$ile];
  62. $ref = $_SESSION['referer'];
  63. echo $query = &#092;"<BR>INSERT INTO submenu (nazwa,art_id,referer,kolejnosc) VALUES ('$nazwa','$id','$ref','$kolejnosc')<br>\";
  64.  
  65. }
  66. }
  67.  
  68.  
  69. ?>


skrypt ma wysiwtlic okreslona liczbe textboxow oraz do kazdego z nich przypisac zmienna sesyjna.
dobra

wpisuje np. 5 klikam ok i opkazuje sie 5 wierszy, 3textboxy w kazdym, dalej klikam Dalej i dupa. jest niepoprawne zapytanie sql tzn sesyjne sie nie ustawily.
wpisuje jeszcze raz 5 w tamtym okienku i dop. teraz sesyjne sie ustawiaja i zapytanie sql jest poprawne.

jak by komus sie chcialo to testowac to powiem ze te bazy danych do ktorych sie odwoluje na poczatku sa w sumie zbedne przy dzialaniu skryptu, maja one na celu tylko zliczaie poszczegolnytch tabel, wiec mozna je wykomentowac.
Wiem ze aby najpierw skorzystac z sesji to trzeba najpierw refresha strony zrobic, no iwdc robie poprzez header ale nic sie ciekawego nie dzieje
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.