Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: radio i getElementByID
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
qlash
Witam

Mam problem:
nie wiem jak mozna zrobic aby przez getElementById('id').value pobrac poprawna wartosc z pola radio
np.
  1. <input type="radio" id="abc" value="a" />
  2. <input type="radio" id="abc" value="b" />
  3. <input type="radio" id="abc" value="c" />


i teraz w zaleznosci od tego, ktore pole jest zaznaczone chce pobrac wlasciwa wartosc poprzez getElementById('abc').value

jak to zrobic? gdyz wywolanie powyzszego zawsze pokazuje mi pierwsza wartosc...
nospor
Nie wiem czy sie orietnujesz, ale id powinno byc zawsze unikalne. U ciebie tak nie jest.
Nadaj name dla radio, dla kazdego w grupie takie samo, potem getElementsByName, lecisz forem i sprawdzasz pokolei co wcisnieto smile.gif
qlash
Dzięki, udało mi się nawet winksmiley.jpg

A teraz mam jeszcze jedno pytanko: czy w js jest cos takiego jak number_format w php?
mike
Cytat(qlash @ 29.08.2006, 10:55 ) *
A teraz mam jeszcze jedno pytanko: czy w js jest cos takiego jak number_format w php?

Juz jest:
Kod
function number_format( number, decimals, dec_point, thousand_sep, p ) {
    var n = ( '' + ( Math.round( number * ( p = Math.pow( 10, decimals || 0 ) ) ) / p ) ).split( '.' );

    for(var i = ( n[ 0 ] = n[ 0 ].split( '' ) ).length - 3; i>0; i-=3 ) {
        n[ 0 ].splice( i, 0, thousand_sep );
    }
    
    return n[ 0 ].join( '' ) + ( n[ 1 ] ? ( dec_point || ',') + n[ 1 ] : '');
}

biggrin.gif
qlash
Dzieki ale, ta funkcja dziala prawie dobrze, np.

dla decimals = 2 wychodzi cos takiego:

23234.4444 => 23 234,44 <-- dobrze
2342 => 2 342 <-- zle, bo nie pokazuje 2 342,00 a o taki zapis mi chodzi

moja wiedza w js nie jest tak mocna, aby poprawic ta fukncje sad.gif tak wiec prosilbym o jakas pomoc ...

EDIT:
znalazlem cos takiego:
  1. function number_format(a, b, c, d) {
  2. a = Math.round(a * Math.pow(10, b)) / Math.pow(10, b);
  3. e = a + '';
  4. f = e.split('.');
  5. if (!f[0]) {
  6. f[0] = '0';
  7. }
  8. if (!f[1]) {
  9. f[1] = '';
  10. }
  11. if (f[1].length < b) {
  12. g = f[1];
  13. for (i=f[1].length + 1; i <= b; i++) {
  14. g += '0';
  15. }
  16. f[1] = g;
  17. }
  18. if(d != '' && f[0].length > 3) {
  19. h = f[0];
  20. f[0] = '';
  21. for(j = 3; j < h.length; j+=3) {
  22. i = h.slice(h.length - j, h.length - j + 3);
  23. f[0] = d + i + f[0] + '';
  24. }
  25. j = h.substr(0, (h.length % 3 == 0) ? 3 : (h.length % 3));
  26. f[0] = j + f[0];
  27. }
  28. c = (b <= 0) ? '' : c;
  29. return f[0] + c + f[1];
  30. }
kancik
hey,
chciałbym zadać pytanie odnośnie radio w funkcji PHP. Powiedzmy, że mam kilka radio np:
<input type='radio' name='samochod' value='$data[0]'> $data[0] <br />
<input type='radio' name='samochod' value='$data[1]'> $data[1] <br />
<input type='radio' name='samochod' value='$data[2]'> $data[2] <br />

$data to array. Ale mam jeszcze jedną tablicę, powiedzmy o nazwie silnik: $silnik=array(1,0,0);
mój submit odnosi mnie do innego skryptu php. bez problemu potrafię w nim wyciągnąć wartość pola radio (po name 'samochod' wyświetla przypisaną wartość z tablicy $data). Ale czy jest sposób aby przy przekazywaniu danych, mieć możliwość w tym drugim skrypcie, wyciągnąć jeszcze dodatkowo dane z tej drugiej tablicy? Próbowałem zrobić coś takiego:
<input type='radio' name='samochod' value='$data[0]' id='$silnik[0]'> $data[0] <br />
<input type='radio' name='samochod' value='$data[1]' id='$silnik[1]'> $data[1] <br />
<input type='radio' name='samochod' value='$data[2]' id='$silnik[2]'> $data[2] <br />

Nie wiem jednak jak daną ID z tablicy wyciągnąć w drugim pliku. Jakieś pomysły?

nospor
Tylko VALUE idzie formem i nic wiecej. Zasada ta dotyczy wszystkich pol formularza, nie tylko radio.

Chcesz przeslac cos wiecej to do VALUE wkladaj wiecej, np oddzielone srednikiem

value='$data[0];$silnik[0]'>
kancik
Nie wiedziałem! Dzięki! Teraz formularz przesyła również dane z drugiej tablicy. Podpowiesz mi jeszcze czy i jak można wyodrębnić te dwie watości z value? Aby móc np stworzyć pętlę w oparciu o jedną z nich?
nospor
explode()
kancik
Super! Wielkie dzięki! 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-2024 Invision Power Services, Inc.