Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Pobranie najwięszego ID z form
tmk
post
Post #1





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 15.04.2004
Skąd: w-wa

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


Witam, mam formularz, w którym są inputy. Każdy z nich ma id, pokolei id=1, id=2 itd...

Potrzebuję funkcję, która mi poda największe id występujące w inputach.
Macie jakiś pomysł jak możnaby to rozwiązać?
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




  1. <input type="text" id="1" />
  2. <input type="text" id="2" />
  3. <input type="text" id="3" />
  4. <input type="text" id="4" />
  5.  
  6. <button onclick="getMaxValue();">licz</button>
  7. <script language="javascript">
  8. function getMaxValue()
  9. {
  10. i = 1;
  11. maxI = null; maxValue=null;
  12. while (true){
  13. obj = document.getElementById(i);
  14. if (!obj) break;
  15. if (maxValue == null || obj.value > maxValue)
  16. {
  17. maxValue = obj.value;
  18. maxI = i;
  19. }
  20. i++;
  21. }
  22.  
  23. alert('MaxValue: '+maxValue+' dla id='+maxI);
  24. }
Go to the top of the page
+Quote Post
tmk
post
Post #3





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 15.04.2004
Skąd: w-wa

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


Dzięki..
ale wyrzuca mnie na pierwszej pętli w break, czyli spełnia warunek
Kod
if(!obj) break;


i podaje, ze max jest id=1
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




a wstawiles moj kod? inputy mają id=1, 2? Bo najwyrazniej nie znalazl takiego inputa
Go to the top of the page
+Quote Post
tmk
post
Post #5





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 15.04.2004
Skąd: w-wa

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


Sprawdz to na takim pliku:
  1. <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=iso-8859-2">
  2. </HEAD>
  3.  
  4. <script language="javascript">
  5. function getMaxValue(){
  6. i = 1;
  7. maxI = null;
  8. maxValue=null;
  9.  
  10. while (true){
  11. obj = document.getElementById(i);
  12. if (!obj){
  13. alert("nie obj");
  14. break;
  15. }
  16. if (maxValue == null || obj.value > maxValue){
  17. maxValue = obj.value;
  18. maxI = i;
  19. }
  20. i++;
  21. }
  22.  
  23. alert('MaxValue: '+maxValue+' dla id='+maxI);
  24. }
  25. <FORM action="obsluga.php" method="post">
  26. <input type="text" id="1" name="cosa" /><BR>
  27. <input type="text" id="2" name="coss" /><BR>
  28. <input type="text" id="3" name="cosaa" /><BR>
  29. <button onclick="getMaxValue();">Pokaż Max</button><BR>
  30. <input type="submit" value=" Klikaj Pan !! !! ">
  31. </FORM>
  32.  
  33. </BODY>
  34. </HTML>


i wyskakuje z while na if(!obj)

Jak na początku (przed pętlą) się zrobi
  1. obj = document.getElementById("1");

to znajduje obiekt, czyli tu problem jest w tym , że w pętli jest na przykład
  1. getElementById(1);
a nie
  1. getElementById("1");

da się tam jakoś te "" wkleić?

Ten post edytował tmk 6.02.2006, 13:37:46
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Nie wiem na czym to testowales, ale mi dziala bez zarzutu. Testowalem na operze i na badzIEwiu. tobie wiec pozostaje ff (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

JAk chcesz miec "i" jako stringa to daj tak:
Kod
obj = document.getElementById(i.toString());
Go to the top of the page
+Quote Post
tmk
post
Post #7





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 15.04.2004
Skąd: w-wa

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


wprowadziłęm zmianę:
  1. if (maxI == null || obj.id > maxI){
  2. maxValue = obj.value;
  3. maxI = i;
  4. }


i teraz jest OK

dzięki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował tmk 6.02.2006, 15:43:50
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




no ale Twoja zmiana będzie wyszukiwalo inputa z największym id a nie z najwiekszą wartością. Jaki tego sens? Skoro chcesz miec największe id, to od razu wpisz se ostatnie, bez sprawdzania zadnych warunkow.
Go to the top of the page
+Quote Post
tmk
post
Post #9





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 15.04.2004
Skąd: w-wa

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


Jeśli wcześniej nejasno napisałem, to sory. Potrzebuję największego inputa, poniewaz muszę mieć możliwośc dynamicznego dodawania inputów, usuwania itp..w wybranych miejsach, wieć ostatni nie rozwiązuje problemu..

Ten post edytował tmk 6.02.2006, 16:35:09
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




no ale to ty nie wiesz ile masz inputów? nawet jak dynamicznie je dodajesz to chyba powinienies wiedziec...

No ale skoro jednak nie wiesz to trzeba przerobic tylko tamten kod:
Kod
function getMaxId(){
i = 1;

while (true){
obj = document.getElementById(i);
if (!obj){
i--;
break;
}
i++;
}

alert('MaxId: '+i);
}
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.09.2025 - 00:34