Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Sprawdzanie ifem przy <select> ?
fredzio90
post 1.05.2007, 09:36:34
Post #1





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 19.02.2007

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


mam pytanko.. do bazy dodaje coś w tym stylu:

  1. <tr>
  2. <td align="right" class="uni_01">Nazwa Gry:</td>
  3. <td align="left" class="uni_01">
  4. <select name="typ">
  5. <option value="avsp2">Alien vs. Predator 2</option>
  6. </td>
  7. </tr>


i włąśnie che napisac funckje sprawdzająćą do EDYTOWANIA wprowadoznych danych....
i moje pytanie.. chciałbym zrobić coś takiego że wyciąga z bazy i jak w bazie w danym wpisie będzie avsp2 to po ta opcja będzie jako domyślna zaznaczone ( selected )...


da się coś takiego questionmark.gif czy to trzebabyło długie linmijki pisać bo mam 92 linijkowe te opcje.... rolleyes.gif
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 15)
no_face
post 1.05.2007, 09:53:15
Post #2





Grupa: Zarejestrowani
Postów: 346
Pomógł: 23
Dołączył: 28.11.2004

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


Oczywiscie mozesz if'owac ale ...

Na pomoc moze przyjsc np js

  1. my1 = document.forms['my'].cos.options; // document.forms['my'] nazwa/id formularza; cos nazwa/id selecta
  2. for(i = 0; i < my1.length; i++)
  3. {
  4.   my2 = my1[i];
  5.   if( my2.value == "avsp2" ) // Twoje porownanie
  6.       {
  7.         my2.selected = true;
  8.       }
  9. }


W takim przypadku zaznaczy Ci opcje gdzie znajdzie po raz pierwszy avsp2;

Ten post edytował no_face 1.05.2007, 09:54:05
Go to the top of the page
+Quote Post
fredzio90
post 1.05.2007, 09:58:21
Post #3





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 19.02.2007

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


ale jak mówiłem że mam troche tych opcji... z 92 liniki i tyle razy musiałbym pisac porównania,..
myślałem że za
  1. <?php
  2. value="avsp2"
  3. ?>
dodać zmienną $opcja

i żeby coś takiego było żeby odczytywało dane pomiędzy średnikami value... niewiem... ale nicchce mi się wpisywać 100 razy porównań.... ;P
Go to the top of the page
+Quote Post
no_face
post 1.05.2007, 10:14:38
Post #4





Grupa: Zarejestrowani
Postów: 346
Pomógł: 23
Dołączył: 28.11.2004

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


Przeciez przy mojej propozycji nie musisz pisac wiecej porownan, wystarczy ten kod, osadz go gdzies na koncu strony, mozesz go zmodyfikowac, by php przekazalo odpowiednia opcje, ktora ma byc zaznaczona.
  1.  if( my2.value == "<?php echo $opcja ?>" ) // Twoje porownanie
Go to the top of the page
+Quote Post
fredzio90
post 1.05.2007, 10:41:14
Post #5





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 19.02.2007

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


sorki ale JS nie znam.. i może mnie zle zrozumiałeś albo ja coś zle zrozumiałem ;D

funkcja edytująca:

  1. <?php
  2. function edit_form() {
  3.  
  4. global $PHP_SELF, $id, $access, $op, $goto, $nazwa_tabeli_tbl;
  5.  
  6. //if(have_access($op)=='ok') {
  7.  
  8.  $query = "SELECT * FROM $nazwa_tabeli_tbl WHERE id=$id";
  9.  $result = mysql_query($query);
  10.  
  11.  $r = mysql_fetch_array($result);
  12.  
  13. $id = $r['id'];
  14. $typ = $r['typ']; // do tego pola zapisują się dane z SELECTA i są teraz wybierane
  15.  
  16. if(CO TUTAJ DAC...) {
  17. $opcja = 'selected';
  18. } 
  19.  
  20. echo'<form name="form_1" method="post" action="admin.php?op='.$op.'">
  21. <table align="center" border="0" cellspacing="3" cellpadding="0">
  22. <tr>
  23. <td align="right" class="uni_01">Nazwa Gry:</td>
  24. <td align="left" class="uni_01">
  25. <select name="typ">
  26. <option value="-">Wybierz Gre</option>
  27. <option value="avsp2" $opcja>Alien vs. Predator 2</option>
  28. <option value="cod" $opcja>Call of Duty</option>
  29. <option value="coduo" $opcja>Call of Duty: United Offensive</option>
  30. <option value="cod2" $opcja>Call of Duty 2</option>
  31. <option value="cs15" $opcja>Counter Strike 1.5</option>
  32. <option value="cs16" $opcja>Counter Strike 1.6</option>
  33. <option value="cscz" $opcja>Counter Strike: Condition Zero</option>
  34. <option value="css" $opcja>Counter-Strike: Source</option>
  35. <option value="dod" $opcja>Day of Defeat</option>
  36. <option value="dods" $opcja>Day of Defeat: Source</option>
  37. <option value="dev" $opcja>Devastation</option>
  38. <option value="et" $opcja>Enemy Territory</option>
  39. <option value="fear" $opcja>F.E.A.R</option>
  40. <option value="hl2d" $opcja>Half-Life 2 Deathmatch</option>
  41. <option value="mohaa" $opcja>Medal of Honor : Allied Assault</option>
  42. <option value="mohs" $opcja>Medal of Honor : Spearhead</option>
  43. <option value="prey" $opcja>Prey</option>
  44. <option value="sof2" $opcja>Soldier of Fortune 2</option>
  45. <option value="quake" $opcja>Quake</option>
  46. <option value="quake2" $opcja>Quake 2</option>
  47. <option value="quake3" $opcja>Quake 3 Arena</option>
  48. <option value="quake4" $opcja>Quake 4</option>
  49. <option value="ut" $opcja>Unreal Tournament</option>
  50. <option value="ut2003" $opcja>Unreal Tournament 2003</option>
  51. <option value="ut2004" $opcja>Unreal Tournament 2004</option>
  52. <option value="war3rog" $opcja>Warcraft 3 : Reign Of Chaos</option>
  53. <option value="war3ft" $opcja>Warcraft 3 : Frozen Throne</option>
  54. <option vaule="wow" $opcja>World of Warcraft</option>
  55. </select>
  56. </td>
  57. </tr>
  58. <tr>
  59. <td align="right" valign="top" class="uni_01">&nbsp;</td>
  60. <td class="uni_01">
  61. <input style="font-weight: bold;" type="submit" name="ok" value="Zapisz">
  62. <input type="reset" name="Reset" value="Wyczyść">
  63. <input type="hidden" name="goto" value="'.$goto.'">
  64. <input type="hidden" name="cmd" value="update_record">
  65. <input type="hidden" name="id" value="'.$id.'">
  66. </td>
  67. </tr>
  68. </table>
  69. </form>
  70. ';
  71.  
  72.  
  73. }
  74. //}
  75. ?>


wszystko napisałem o co mi chodzi ;d
Go to the top of the page
+Quote Post
no_face
post 1.05.2007, 10:58:19
Post #6





Grupa: Zarejestrowani
Postów: 346
Pomógł: 23
Dołączył: 28.11.2004

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


Moja propozycja:

  1. <?php
  2. echo'<form name="form_1" method="post" action="admin.php?op='.$op.'">
  3. <table align="center" border="0" cellspacing="3" cellpadding="0">
  4. <tr>
  5. <td align="right" class="uni_01">Nazwa Gry:</td>
  6. <td align="left" class="uni_01">
  7. <select name="typ">
  8. <option value="-">Wybierz Gre</option>
  9. <option value="avsp2">Alien vs. Predator 2</option>
  10. <option value="cod">Call of Duty</option>
  11. <option value="coduo">Call of Duty: United Offensive</option>
  12. <option value="cod2">Call of Duty 2</option>
  13. <option value="cs15">Counter Strike 1.5</option>
  14. <option value="cs16">Counter Strike 1.6</option>
  15. <option value="cscz">Counter Strike: Condition Zero</option>
  16. <option value="css">Counter-Strike: Source</option>
  17. <option value="dod">Day of Defeat</option>
  18. <option value="dods">Day of Defeat: Source</option>
  19. <option value="dev">Devastation</option>
  20. <option value="et">Enemy Territory</option>
  21. <option value="fear">F.E.A.R</option>
  22. <option value="hl2d">Half-Life 2 Deathmatch</option>
  23. <option value="mohaa">Medal of Honor : Allied Assault</option>
  24. <option value="mohs">Medal of Honor : Spearhead</option>
  25. <option value="prey">Prey</option>
  26. <option value="sof2">Soldier of Fortune 2</option>
  27. <option value="quake">Quake</option>
  28. <option value="quake2">Quake 2</option>
  29. <option value="quake3">Quake 3 Arena</option>
  30. <option value="quake4">Quake 4</option>
  31. <option value="ut">Unreal Tournament</option>
  32. <option value="ut2003">Unreal Tournament 2003</option>
  33. <option value="ut2004">Unreal Tournament 2004</option>
  34. <option value="war3rog">Warcraft 3 : Reign Of Chaos</option>
  35. <option value="war3ft">Warcraft 3 : Frozen Throne</option>
  36. <option vaule="wow">World of Warcraft</option>
  37. </select>
  38. </td>
  39. </tr>
  40. <tr>
  41. <td align="right" valign="top" class="uni_01">&nbsp;</td>
  42. <td class="uni_01">
  43. <input style="font-weight: bold;" type="submit" name="ok" value="Zapisz">
  44. <input type="reset" name="Reset" value="Wyczyść">
  45. <input type="hidden" name="goto" value="'.$goto.'">
  46. <input type="hidden" name="cmd" value="update_record">
  47. <input type="hidden" name="id" value="'.$id.'">
  48. </td>
  49. </tr>
  50. </table>
  51. </form>
  52.  
  53. <script LANGUAGE="JavaScript">
  54. <!--
  55. my1 = document.forms['form_1'].typ.options;
  56. for(i = 0; i < my1.length; i++)
  57.  {
  58.  my2 = my1[i];
  59.  if( my2.value == "$typ" ) // tutaj sprawdzi, ktora z opcji selecta jest rowna typowi wyciagnietemu z bazy, j
    esli taki znajdzie zaznaczy go.
  60.  {
  61.  my2.selected = true;
  62.  }
  63.  }
  64.  -->
  65. </script>';
  66. ?>


W Twojej wersji, jesli zmienna opcja mialaby wartosc selected to kazdy z selektow mialby wartosc select, co z pewnoscia nie bylo Twoim zamierzeniem.

Jesli dalej czegos nie rozumiesz, pisz.
Go to the top of the page
+Quote Post
fredzio90
post 1.05.2007, 11:58:38
Post #7





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 19.02.2007

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


  1. <?php
  2. function edit_form() {
  3.  
  4. global $PHP_SELF, $id, $access, $op, $goto, $mecze_klanowe_tbl;
  5.  
  6.  
  7. //if(have_access($op)=='ok') {
  8.  
  9.  $query = "SELECT * FROM $mecze_klanowe_tbl WHERE id=$id";
  10.  $result = mysql_query($query);
  11.  
  12.  $r = mysql_fetch_array($result);
  13.  
  14. $id = $r['id'];
  15. $typ = $r['typ'];
  16.  
  17. echo'<form name="form_1" method="post" action="admin.php?op='.$op.'">
  18. <table align="center" border="0" cellspacing="3" cellpadding="0">
  19. <tr>
  20. <td align="right" class="uni_01">Nazwa Gry:</td>
  21. <td align="left" class="uni_01">
  22. <select name="typ">
  23. <option value="-">Wybierz Gre</option>
  24. <option value="avsp2">Alien vs. Predator 2</option>
  25. <option value="cod">Call of Duty</option>
  26. <option value="coduo">Call of Duty: United Offensive</option>
  27. <option value="cod2">Call of Duty 2</option>
  28. <option value="cs15">Counter Strike 1.5</option>
  29. <option value="cs16">Counter Strike 1.6</option>
  30. <option value="cscz">Counter Strike: Condition Zero</option>
  31. <option value="css">Counter-Strike: Source</option>
  32. <option value="dod">Day of Defeat</option>
  33. <option value="dods">Day of Defeat: Source</option>
  34. <option value="dev">Devastation</option>
  35. <option value="et">Enemy Territory</option>
  36. <option value="fear">F.E.A.R</option>
  37. <option value="hl2d">Half-Life 2 Deathmatch</option>
  38. <option value="mohaa">Medal of Honor : Allied Assault</option>
  39. <option value="mohs">Medal of Honor : Spearhead</option>
  40. <option value="prey">Prey</option>
  41. <option value="sof2">Soldier of Fortune 2</option>
  42. <option value="quake">Quake</option>
  43. <option value="quake2">Quake 2</option>
  44. <option value="quake3">Quake 3 Arena</option>
  45. <option value="quake4">Quake 4</option>
  46. <option value="ut">Unreal Tournament</option>
  47. <option value="ut2003">Unreal Tournament 2003</option>
  48. <option value="ut2004">Unreal Tournament 2004</option>
  49. <option value="war3rog">Warcraft 3 : Reign Of Chaos</option>
  50. <option value="war3ft">Warcraft 3 : Frozen Throne</option>
  51. <option vaule="wow">World of Warcraft</option>
  52. </select>
  53. </td>
  54. </tr>
  55. <tr>
  56. <td align="right" valign="top" class="uni_01">&nbsp;</td>
  57. <td class="uni_01">
  58. <input style="font-weight: bold;" type="submit" name="ok" value="Zapisz">
  59. <input type="reset" name="Reset" value="Wyczyść">
  60. <input type="hidden" name="goto" value="'.$goto.'">
  61. <input type="hidden" name="cmd" value="update_record">
  62. <input type="hidden" name="id" value="'.$id.'">
  63. </td>
  64. </tr>
  65. </table>
  66. </form>
  67.  
  68. <script LANGUAGE="JavaScript">
  69. <!--
  70. my1 = document.forms['form_1'].typ.options;
  71. for(i = 0; i < my1.length; i++)
  72.  {
  73.  my2 = my1[i];
  74.  if( my2.value == "$typ" ) // tutaj sprawdzi, ktora z opcji selecta jest rowna typowi wyciagnietemu z bazy, j
    esli taki znajdzie zaznaczy go.
  75.  {
  76.  my2.selected = true;
  77.  }
  78.  }
  79.  -->
  80. </script>';
  81.  
  82.  
  83. }
  84.  
  85. //}
  86. ?>


i zaznaczone jest Wybierz Gre ;D

a edytuje wpis o wartości cs16 (sprawdzane w phpmyadminie )
Go to the top of the page
+Quote Post
no_face
post 1.05.2007, 12:08:09
Post #8





Grupa: Zarejestrowani
Postów: 346
Pomógł: 23
Dołączył: 28.11.2004

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


W takim przypadku zrob tak by w zmiennej typ byla jakas wartosc ktora znajduje sie w selectach inaczej zawsze bedzie wybieralo wybierz gre. Jesli w $typ bedzie avsp2 to ta opcja sie zaznaczy.
Go to the top of the page
+Quote Post
fredzio90
post 1.05.2007, 12:11:24
Post #9





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 19.02.2007

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


no właśnie w zmiennej $typ jest wybierana opcja cs16 która JEST w SELCTACH..... tongue.gif

  1. <option value="cs16">Counter Strike 1.6</option>


niewiem może się myle ale może ten kod JS wlanąć do funkcji questionmark.gif zrobić z niego funnkcję

Ten post edytował fredzio90 1.05.2007, 12:17:26
Go to the top of the page
+Quote Post
no_face
post 1.05.2007, 12:18:33
Post #10





Grupa: Zarejestrowani
Postów: 346
Pomógł: 23
Dołączył: 28.11.2004

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


Sprobuj zrobic to w ten sposob. Zamiast $typ napisz dla testu np. cs16 i odpal skrypt, zobaczymy co wyjdzie.
Go to the top of the page
+Quote Post
fredzio90
post 1.05.2007, 12:23:56
Post #11





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 19.02.2007

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


$typ = 'cs16';

i to samo.. niewiem powtóze się żeby ten kod JS może zrobić z niego funkcje jak by się dało... coś w tym stylu:

  1. <?php
  2. function f(obj,im){
  3. document.getElementById(im).src='images/flags/flag_'+obj.options[obj.selectedIndex].value+'.png';
  4. }
  5. ?>


dałem nawet tak:

  1. <?php
  2. $typ = $r['typ'];
  3.  
  4. echo $typ;
  5. ?>


i pokazuje cs16 dla pewności..
Go to the top of the page
+Quote Post
no_face
post 1.05.2007, 12:26:59
Post #12





Grupa: Zarejestrowani
Postów: 346
Pomógł: 23
Dołączył: 28.11.2004

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


Nie o to mi chodzilo, zrob tak.

  1. if( my2.value == "cs16" )
Go to the top of the page
+Quote Post
fredzio90
post 1.05.2007, 12:29:17
Post #13





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 19.02.2007

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


działa tak.... ohmy.gif
Go to the top of the page
+Quote Post
no_face
post 1.05.2007, 12:34:10
Post #14





Grupa: Zarejestrowani
Postów: 346
Pomógł: 23
Dołączył: 28.11.2004

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


Uwaga chyba znalazlem blad, troche na noob poziomie, ale wstyd.

Jesli uzywasz do wyswietlania ciagow znakow pojedynczych cudyslowi to cala zawartosc pomiedzy nimi jest traktowana jako tekst i nic innego poza wyswietleniem sie z nim nie dzieje smile.gif

Sprobuj ten zapis:

  1.  if( my2.value == "' . $typ . '" )
Go to the top of the page
+Quote Post
fredzio90
post 1.05.2007, 12:44:58
Post #15





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 19.02.2007

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


każdy popełnia błędy ;D
Oczywiście działa ;D
DZIEKUJE !

ostatnie pytanko jeżlei mamw iecej niz 1 pole select to jak to będzie ?
Go to the top of the page
+Quote Post
no_face
post 1.05.2007, 12:51:10
Post #16





Grupa: Zarejestrowani
Postów: 346
Pomógł: 23
Dołączył: 28.11.2004

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


Dla kazdego selecta bedziesz musial uzyc osobnego kodu, obslugujacego danego selecta, np:
  1. <?php
  2. my1 = document.forms['form_1'].NAZWA_INNEGO_SELECTA.options;
  3. for(= 0; i < my1.length; i++)
  4.  {
  5.  my2 = my1[i];
  6.  if( my2.value == "$typ_1" )
  7.  {
  8.  my2.selected = true;
  9.  }
  10.  }
  11. ?>
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: 2.07.2025 - 08:29