Pomoc - Szukaj - U¿ytkownicy - Kalendarz
Pe³na wersja: Ukrywanie i ujawnianie inputów
Forum PHP.pl > Forum > Po stronie przegl±darki > JavaScript
adeq_PL
Witam.

Mam nastepujacy problem. Napisalem formularz, ktorego zrodlo znajduje sie ponizej i chcialbym do niego dorobic nastepujacy skrypt.

Chcialbym zeby po zaznaczeniu checkboxa pojawialy sie 4 pozostale imputy, ktore sa typu text, natomiast po jego odznaczeniu chcialbym zeby sie ukrywaly.

A oto i kod:

  1. <?php
  2.  
  3. $tablica = array ("Pn.-Pt.", "Poniedzia³ek", "Wtorek", "&para;roda", "Czwatrek", "Pi&plusmn;tek", "Sobota", "Niedziela");
  4.  
  5. echo "<table width=350 cellpadding='1' cellspacing='0'>";
  6.  
  7. for($ile=0;$ile<=7;$ile++){
  8.  
  9.  echo "<tr><td align='left'>";
  10.  
  11.  echo "<input type='checkbox' name='dni[]' value=$tablica[$ile]>
  12.  <font class=edytuj>$tablica[$ile]</font>
  13.  </td><td>
  14.  
  15. <font class=edytuj> od: </font>
  16. <input type='text' size='1' name='godzod[$ile]' maxlength='2'> 
  17. <font class=edytuj> : </font>
  18. <input type='text' size='1' name='minod[$ile]' maxlength='2'>
  19. <font class=edytuj> do: </font>
  20. <input type='text' size='1' name='godzdo[$ile]' maxlength='2'>
  21. <font class=edytuj> : </font>
  22. <input type='text' size='1' name='mindo[$ile]' maxlength='2'>";
  23.  
  24. echo "</td></tr>";
  25. }
  26. echo "</table>";
  27.  
  28. ?>


Mam nadzieje ze jest to mozliwe do realizacji. Dzieki za kazda pomoc smile.gif
adeq_PL
Dzieki, ale przegladalem tego posta i probowalem nawet go zastosowac w moim skrypcie oto co sie mi udalo stworzyc, choc i tak to nie dziala.....


Kod
<script language='JavaScript'>

function show()
{
obj=document.getElementById('id[$ile]');
obj.style.display='';
obj=document.getElementById('id[$ile]');
obj.style.display='';
obj=document.getElementById('id[$ile]');
obj.style.display='';
obj=document.getElementById('id[$ile]');
obj.style.display='';
}

</script>


  1. <?php
  2. $tablica = array ("Pn.-Pt.", "Poniedzia³ek", "Wtorek", "&para;roda", "Czwatrek", "Pi&plusmn;tek", "Sobota", "Niedziela");
  3.  
  4.  echo "<table width=350 cellpadding='1' cellspacing='0'>";
  5.  
  6. for($ile=0;$ile<=7;$ile++){
  7.  
  8.  echo "<tr><td align='left'>";
  9. echo "<input type='checkbox' onchange='show()' name='dni[]' value=$tablica[$ile]>
  10.  <font class=edytuj>$tablica[$ile]</font>
  11.  </td><td>
  12.  
  13. <font class=edytuj> od: </font>
  14. <input type='text' id='id[$ile]' size='1' name='godzod[$ile]' style='display:none' maxlength='2'> 
  15. <font class=edytuj> : </font>
  16. <input type='text' id='id[$ile]' size='1' name='minod[$ile]' style='display:none' maxlength='2'>
  17. <font class=edytuj> do: </font>
  18. <input type='text' id='id[$ile]' size='1' name='godzdo[$ile]' style='display:none' maxlength='2'>
  19. <font class=edytuj> : </font>
  20. <input type='text' size='1' id='id[$ile]' name='mindo[$ile]' style='display:none' maxlength='2'>";
  21.  
  22. echo "</td></tr>";
  23.  
  24.  }
  25.  
  26.  
  27. echo "</table>"; 
  28.  
  29. ?>


Js staram sie dopiero poznac, dlatego prosze o propozycje jak ty zmodyfikowalbys moj kod do tego skryptu?
nospor
ten kod js co pokazales, to ty generujesz przez php? Bo uzywasz w nim zmiennych php
adeq_PL
Tak wlasciwie to ja to zle tu napisalem, poniewaz ten skrypt JS mam zawarty w petli for w echo"";

Nie wiem pewno tak nie moze byc a jest to jedynie wytwor metody prob i bledow jaka zastosowalem... smile.gif

Bylbym baaardzo wdzieczny gdybys mi powiedzial jak ty to widzisz i naprowadzil mnie na dobry tok rozumowania smile.gif

dzieki za wyrozumialosc tongue.gif
nospor
po pierwsze: popelniasz blad, gdyz w petli dla roznych inputów zapodajesz te same id:id=id[$ile]. Dlategosamego kroku, te id bed± identyczne, wiec po id ich nie rozró¿nisz

po drugie: we¼ ty te wszystkie id wsad¼ do jednego diva, temu divowi nadaj id zale¿ne od $ile, tylko juz nie rob tablicy, a poprotstu dopisz te $ile do id. potem do funkcji show() zapodawa te $ile i bedzie git. ww skrocie:
  1. <?php
  2.  
  3. for($ile=0;$ile<=7;$ile++){
  4.  
  5.  echo "<input type='checkbox' onchange='show($ile)' name='dni[]' value=$tablica[$ile]>";
  6. echo "<div id='div_$ile'>tutaj te twoje inputy</div>";
  7.  
  8.  }
  9.  
  10. ?>


funcja js poza pêtl±:
Kod
<script language='JavaScript'>

function show(nr)
{
obj=document.getElementById('div_'+nr);
obj.style.display='';
}

</script>

A zeby pokazywac jak checkboxa zaznaczysz, to tez w linku bylo.
adeq_PL
nospor zrobilem jak kazales ale nadal mi wyskakuje jakis blad :/

Moglbys jeszcze raz na to looknac?

  1. <?php
  2. echo "<script language='JavaScript'>
  3.  
  4. function show(0)
  5. {
  6.  obj=document.getElementById('div_0');
  7.  obj.style.display='';
  8. }
  9. function show(1)
  10. {
  11.  obj=document.getElementById('div_1');
  12.  obj.style.display='';
  13. }
  14. function show(2)
  15. {
  16.  obj=document.getElementById('div_2');
  17.  obj.style.display='';
  18. }
  19. function show(3)
  20. {
  21.  obj=document.getElementById('div_3');
  22.  obj.style.display='';
  23. }
  24. function show(4)
  25. {
  26.  obj=document.getElementById('div_4');
  27.  obj.style.display='';
  28. }
  29. function show(5)
  30. {
  31.  obj=document.getElementById('div_5');
  32.  obj.style.display='';
  33. }
  34. function show(6)
  35. {
  36.  obj=document.getElementById('div_6');
  37.  obj.style.display='';
  38. }
  39. function show(7)
  40. {
  41.  obj=document.getElementById('div_7');
  42.  obj.style.display='';
  43. }
  44.  
  45.  </script>";
  46.  
  47.  
  48. $tablica = array ("Pn.-Pt.", "Poniedzia³ek", "Wtorek", "&para;roda", "Czwatrek", "Pi&plusmn;tek", "Sobota", "Niedziela");
  49.  
  50.  echo "<table width=350 cellpadding='1' cellspacing='0'>";
  51.  
  52. for($ile=0;$ile<=7;$ile++){
  53.  
  54.  echo "<tr><td align='left'>";
  55.  
  56.  echo "<input type='checkbox' onClick='show($ile)' name='dni[]' value=$tablica[$ile]>
  57.  <font class=edytuj>$tablica[$ile]</font>
  58.  
  59.  </td><td>";
  60.  
  61. echo "<div id='div_$ile' style='display:none'>
  62. <font class=edytuj> od: </font><input type='text' size='1' name='godzod[$ile]' maxlength='2'> 
  63. <font class=edytuj> : </font><input type='text' ' size='1' name='minod[$ile]' maxlength='2'>
  64. <font class=edytuj> do: </font><input type='text' size='1' name='godzdo[$ile]' maxlength='2'>
  65. <font class=edytuj> : </font><input type='text' size='1' name='mindo[$ile]' maxlength='2'>
  66. </div>";
  67.  
  68. echo "</td></tr>";
  69.  
  70.  }
  71.  
  72.  
  73. echo "</table>";
  74.  
  75. ?>


co robie zle?
nospor
wyra¼nie ci napisalem, ze funckja show() ma byc poza pêtl±. S±dz±c po twoim kodzie albo tego nie doczytales, albo to ¼le zrozumiales i dales j± pozapêtl±, ale rêcznie sam nastukales ich x-nascie smile.gif
Ma byc kedna funkcja show i tylko jedna. tak jak ci podalem.

Cytat
ale nadal mi wyskakuje jakis blad :
Na przyszlo¶æ podziel sie z nami tym bledem smile.gif
adeq_PL
WIELKIE dzieki nospor!!!

Jestes naprawde swietnym programista i nauczycielem dzieki exclamation.gif!!!


A funkce odwrotna zrobilem juz sam na podstawie podanego linku tongue.gif


Kod
<script language='JavaScript'>
          function show(nr)
  {
      obj=document.getElementById('div_'+nr);
      objCheck=document.getElementById('check_'+nr);
  if (objCheck.checked)
      obj.style.display='';
  else
      obj.style.display='none';
  }


       </script>


pozdrawiam smile.gif
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.