Pomoc - Szukaj - U¿ytkownicy - Kalendarz
Pe³na wersja: [js / php] Jak dostac sie do elementu z listy select
Forum PHP.pl > Forum > Po stronie przegl±darki > JavaScript
kuterka
Witam

Mam takie cudo

  1. <script language="javascript" type="text/javascript">
  2. function Suma(liczba){
  3. var ilosc= parseInt(liczba);
  4. s = 0;
  5. for (i=1;i<=ilosc;i++)
  6. {
  7. var nazwa="document.cos.a"+i+".value";
  8.  
  9. alert(nazwa.value);
  10. wartosc = parseInt(document.cos.a1.value);
  11. if (!isNaN(wartosc)) s += wartosc;
  12. }
  13. document.getElementById('ready').value = s;
  14. }
  15.  
  16. function potwierdz()
  17. {
  18. s=document.getElementById('ready').value;
  19. if ( confirm("Wprowadzono "+s+" godzin. Czy potwierdzasz ? ") )
  20.  document.cos.submit();
  21. }
  22.  
  23. </script>
  24. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  25. <html xmlns="http://www.w3.org/1999/xhtml">
  26. <head>
  27. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  28. <title>Untitled Document</title>
  29. <link rel="stylesheet" href="style.css">
  30. </head>
  31. <body bgcolor="#33CCFF">
  32. <?php
  33.  
  34. echo '<FORM name="cos" action="formtemp.php" method="post"> ';
  35.  
  36. echo '<br><br><br />
  37. <SELECT name="a1" class="dropdownlist_godziny" id="a1" onchange="Suma(this.form.ile_pol.value)">
  38. <OPTION SELECTED VALUE=0>00:00
  39. <OPTION VALUE=15>0:15
  40. <OPTION VALUE=30>0:30
  41. <OPTION VALUE=45>0:45
  42. <OPTION VALUE=60>1:00
  43. <OPTION VALUE=75>1:15
  44. <OPTION VALUE=90>1:30
  45. </SELECT> &nbsp;<br><br>';  
  46. echo '<br><br><br />
  47. <SELECT name="a2" class="dropdownlist_godziny" id="a2" onchange="Suma(this.form.ile_pol.value)">
  48. <OPTION SELECTED VALUE=0>00:00
  49. <OPTION VALUE=15>0:15
  50. <OPTION VALUE=30>0:30
  51. <OPTION VALUE=45>0:45
  52. <OPTION VALUE=60>1:00
  53. <OPTION VALUE=75>1:15
  54. <OPTION VALUE=90>1:30
  55. </SELECT> &nbsp;<br><br>';  
  56. echo '<br><br><br />
  57. <SELECT name="a3" class="dropdownlist_godziny" id="a3" onchange="Suma(this.form.ile_pol.value)">
  58. <OPTION SELECTED VALUE=0>00:00
  59. <OPTION VALUE=15>0:15
  60. <OPTION VALUE=30>0:30
  61. <OPTION VALUE=45>0:45
  62. <OPTION VALUE=60>1:00
  63. <OPTION VALUE=75>1:15
  64. <OPTION VALUE=90>1:30
  65. </SELECT> &nbsp;<br><br>';  
  66.  
  67. echo '<br> suma: <input type="text" name="ready" id="ready" >';
  68.  
  69. $ile_pol=3;
  70. echo '<input type="hidden" name="ile_pol" id="ile_pol" value="'.$ile_pol.'">';
  71.  
  72. //-------------- koniec formularza -------------------------
  73. echo '&nbsp;<br><br><br /><input type="submit" class="fontstyle" name="button" value="Continue" onclick="potwierdz()"</p>';
  74. echo '<BUTTON onclick="potwierdz()">Wysylaj</BUTTON>';
  75.  echo '</FORM>';
  76.  
  77. ?>


Moje pytanie brzmi w jaki sposb dostac sie do wybranego elementu listy select jesli nazwe selecta tworze w w php
  1. <?php
  2. $action='a'.$row_father[1]; // zrob nazwe zmiennej a + id procesu
  3. <SELECT name="' . $action . '" class="dropdownlist_godziny" id="' . $action . '" onchange="Suma(this.form.ile_pol.value)">
  4. ?>


Jak sie do tego dobrac teraz w js
wartosc = parseInt(document.cos.a1.value); czyli co powinienem wstawic w miejsce a1 probowalem tak
wartosc = parseInt(document.cos."a"+i.value) ale nie dziala

Macie jakis pomysly
vokiel
mo¿e tak:

  1. <script language="JavaScript">
  2. wybrane_pole = "a" + i;
  3. wartosc = parseInt(document.cos.wybrane_pole.value)


a jak chcesz siê odwo³ywaæ do wybranego pola listy to mo¿e przez:
  1. wartosc = document.cos.options[wybrane_pole.selectedIndex].value;

nie wiem czy na pewno tak, pisane z palca
kuterka
Niestety nie dziala

Zastanawiam sie jak teraz to rozwiazac zeby js lyknal to jako nazwe zmiennej

  1. <?php
  2. zmienna_nazwa_selecta="a"+i;
  3. wartosc = parseInt(document.cos.zmienna_nazwa_selecta.value);
  4. ?>


bo jesli to zrobie tak jak jest wyzej to mowi ze nie ma takiego obektu.

Czy generowal ktos z was dynamicznie selecty( badz jakies inne obiekty inputy itp) w php a pozniej probowal sie dobrac do ich wartosc w js questionmark.gif

jesli uzyje sztywnej nazwy selecta czyli a1 to wszystko dziala .
abc667
yyy tak siê nie odwo³uje

  1. document.forms["cos"].elements["a"+i].value
kuterka
Witam

Dzieki abc667 smile.gif

Teraz jest taki problem ktory wystepuje tylko w IE pod Mozilla ladnie smiga ten script

  1. <?php
  2. function Suma(liczba,tablica_id){
  3. var ilosc= parseInt(liczba); <!-- liczba zmienna przechowujaca ilosc pol w formularzu
  4. s=0;
  5. k=0;
  6. var spis_id_selectow = new String();
  7. var temp = new String();
  8. var przefiltrowany_spis = new Array(ilosc);
  9. spis_id_selectow=tablica_id;
  10. temp="";
  11. for(j=0;j<spis_id_selectow.length;j++)
  12. {
  13.  if(spis_id_selectow[j]!=',')
  14.  { 
  15. temp=temp+spis_id_selectow[j];
  16.  } 
  17.  else
  18.  {
  19. przefiltrowany_spis[k]= parseInt(temp);
  20.  temp="";
  21.  k++;
  22.  }
  23. }
  24. for (i=0;i<ilosc;i++)
  25. {
  26. <!--var= przefiltrowany_spis[i];
  27. wartosc = parseInt(document.forms["glowny"].elements["a"+przefiltrowany_spis[i]].value); 
  28. if (!isNaN(wartosc)) s += wartosc;
  29. }
  30. ?>


Po debugowaniu w IE wychodzi na to ze IE nie przyjmuje tej operacji.
  1. <?php
  2. spis_id_selectow=tablica_id;
  3. ?>


Bo jak sprawdzilem zawartosc tablicy to wywala ze jest undefined
  1. <?php
  2. spis_id_selectow[j]
  3. ?>


Czy wie ktos jak na to zaradzic sad.gif(((

Jak zrobic zeby w js zrzutowac ta zmienna przekazywana w parametrze ( tablica_id) do zmiennej JS . Zmienna tablica_id ( to nie jest typ array) zawierac bedzie takiego typu dane string :
3,5,6,7,8,10,11,12,13,14,15,16,18,19,20,21,23,24,25,27,28,30,31,32,34,35,37,38,3
,40,41,42,44,45,46,49,50,51,
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.