Pomoc - Szukaj - U¿ytkownicy - Kalendarz
Pe³na wersja: [PHP] Sprawdzanie ifem przy <select> ?
Forum PHP.pl > Forum > Przedszkole
fredzio90
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
no_face
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;
fredzio90
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
no_face
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
fredzio90
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
no_face
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.
fredzio90
  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 )
no_face
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.
fredzio90
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ê
no_face
Sprobuj zrobic to w ten sposob. Zamiast $typ napisz dla testu np. cs16 i odpal skrypt, zobaczymy co wyjdzie.
fredzio90
$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..
no_face
Nie o to mi chodzilo, zrob tak.

  1. if( my2.value == "cs16" )
fredzio90
dzia³a tak.... ohmy.gif
no_face
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 . '" )
fredzio90
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 ?
no_face
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. ?>
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.