Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
Problem z kodem html - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: Początkujący webmaster (https://www.webmastertalk.pl/forum-poczatkujacy-webmaster)
+--- Wątek: Problem z kodem html (/thread-problem-z-kodem-html)

Strony: 1 2


Problem z kodem html - niewyrzyty777 - 13-06-2011

Witam

Jestem w trakcie nauki i podczas jednych wypocin pojawił mi sie problem z kodem.

Kod:
<script>
function wstawianie1() {
                            wtapianie  = document.getElementById('komorka_i');
                            komorka_i.value = '1'}
function wstawianie2() {
                            wtapianie  = document.getElementById('komorka_i');
                            komorka_i.value = '2'}
function wstawianie3() {
                            wtapianie  = document.getElementById('komorka_i');
                            komorka_i.value = '3'}
function wstawianie4() {
                            wtapianie  = document.getElementById('komorka_i');
                            komorka_i.value = '4'}

function warunek_pierwszy() {
                             if(komorka_i.value == '1'){komorka_i1.value = 'warunek 1 - OK'}
                             else{komorka_i1.value = 'warunek 1 - NOK'}}
</script>
<input name="komorka_n"  id="komorka_i"  type="text"   value=""                                       />
<input name="przycisk_n1" id="przycisk_i1" type="button" value="Press 1"      onclick="javascript:wstawianie1();"  />
<input name="przycisk_n2" id="przycisk_i2" type="button" value="Press 2"      onclick="javascript:wstawianie2();"  />
<input name="przycisk_n3" id="przycisk_i3" type="button" value="Press 3"      onclick="javascript:wstawianie3();"  />
<input name="przycisk_n3" id="przycisk_i4" type="button" value="Press 4"      onclick="javascript:wstawianie4();"  />
<input name="komorka_n1"  id="komorka_i1"  type="text"   value="test warunek"                           />
<input name="przycisk_n5" id="przycisk_i5" type="button" value="Press warunek 1"      onclick="javascript:warunek_pierwszy();"  />

W tej postaci odpalony w firefox'ie działa w 100%. Natomiast jak dostawia pozostały szkielet strony tj. <html head i body> to wówczas nie chce odpalić w przegladarce firefox'a. Poniżej kod cały:

Kod:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
  <title></title>
  <script     type="text/javascript">

function wstawianie1() {
                            wtapianie  = document.getElementById('komorka_i');
                            komorka_i.value = '1'
}
function wstawianie2() {
                            wtapianie  = document.getElementById('komorka_i');
                            komorka_i.value = '2'
}
function wstawianie3() {
                            wtapianie  = document.getElementById('komorka_i');
                            komorka_i.value = '3'
}
function wstawianie4() {
                            wtapianie  = document.getElementById('komorka_i');
                            komorka_i.value = '4'
}

function warunek_pierwszy() {
                             if(komorka_i.value == '1'){
                               komorka_i1.value = 'warunek 1 - OK'
                             }
                             else{
                               komorka_i1.value = 'warunek 1 - NOK'
                             }
}

</script>

</head>
<body>

<input name="komorka_n"  id="komorka_i"  type="text"   value=""                                       />

<input name="przycisk_n1" id="przycisk_i1" type="button" value="Press 1"      onclick="javascript:wstawianie1();"  />
<input name="przycisk_n2" id="przycisk_i2" type="button" value="Press 2"      onclick="javascript:wstawianie2();"  />
<input name="przycisk_n3" id="przycisk_i3" type="button" value="Press 3"      onclick="javascript:wstawianie3();"  />
<input name="przycisk_n3" id="przycisk_i4" type="button" value="Press 4"      onclick="javascript:wstawianie4();"  />

<input name="komorka_n1"  id="komorka_i1"  type="text"   value="test warunek"                           />

<input name="przycisk_n5" id="przycisk_i5" type="button" value="Press warunek 1"      onclick="javascript:warunek_pierwszy();"  />

</body>
</html>

Co ciekawe w programie edycyjnym działa w 100%. Podobny jest problem
w przypadku kodu javascript umieszczonym w pliku zewnetrznym.

Byłbym bardzo wdzieczny za naprowadzenie mnie na błąd w kodzie.
Właśnie odpaliłem na Chrome i IE i wszystko OK. Na firefox'ie nie działa. Ciekawe czemu bo inne skrypty chodzą bez problemu.


RE: Problem z kodem html - Kartofelek - 13-06-2011

Zadanie 1:
Wyjaśnij nieprawidłowość poniższego kodu

Kod:
wtapianie = document.getElementById('komorka_i');
komorka_i.value = '1'
...
...
<input name="komorka_n1" id="komorka_i1" type="text" value="test warunek" />

Rozwiązanie:
Powyższy kod oznacza "pobierz element komorka_i i zrób z nim coś tam". Niestety skrypt nie widzi danego elementu, bo gry się wykonuje, element komorka_i jeszcze nie istnieje (wczytuje się później ponieważ kod czytany jest z góry na dół)

Odpowiedź:
Skrypty zawsze umieszczamy na końcu strony, tuż przed tagiem </body>. Dzięki temu skrypty widzą nasze elementy + wczytuje pierwsze wczytuje się to co jest najważniejsze - czyli treść sttrony.

Zaliczone na 5 Smile

Ps. Patrz na samym dole czarna ramka):
http://doman.art.pl/kursjs/kurs/pierwszy_skrypt.html


RE: Problem z kodem html - niewyrzyty777 - 13-06-2011

" Zaliczone na 5 Smile "

No raczej nie. Pozmieniałem trochę i dalej nic.

Kod:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head><title></title></head>
<body>

<input name="komorka_n"   id="komorka_i"   type="text"   value=""/>
<input name="komorka_n1"  id="komorka_i1"  type="text"   value="test warunek"/>

<input name="przycisk_n5" id="przycisk_i5" type="button" value="Press warunek 1" onclick="javascript:warunek_pierwszy();"  />

<input name="przycisk_n1" id="przycisk_i1" type="button" value="Press 1"      onclick="javascript:wstawianie1();"  />
<input name="przycisk_n2" id="przycisk_i2" type="button" value="Press 2"      onclick="javascript:wstawianie2();"  />
<input name="przycisk_n3" id="przycisk_i3" type="button" value="Press 3"      onclick="javascript:wstawianie3();"  />
<input name="przycisk_n3" id="przycisk_i4" type="button" value="Press 4"      onclick="javascript:wstawianie4();"  />
<script     type="text/javascript">
    //<![CDATA[
        function wstawianie1() { komorka_i.value = '1' };
        function wstawianie2() { komorka_i.value = '2' };
        function wstawianie3() { komorka_i.value = '3' };
        function wstawianie4() { komorka_i.value = '4' };
        function warunek_pierwszy() { if(komorka_i.value == '1'){ komorka_i1.value = 'warunek 1 - OK'}
                                        else{ komorka_i1.value = 'warunek 1 - NOK'}};
    //]]>
</script>
</body>
</html>

Nie wiem co jest ztym nie tak. Sprawdzałem na innym kompie na firefox'ie i daje nie chodzi a na innych przegladarkach jest ok. Nie jestem dobry w javie i dlatego nie potrafie dostrzec problemu choć sam kod jest banalnie prosty.


RE: Problem z kodem html - Kartofelek - 13-06-2011

A to ze pozmienialeś to już twoja sprawa. Ja ci tylko napisałem żebyś skrypty umieścił na końcu dokumentu, a nie je zmieniał (błędnie zmieniał). Jak ma ci to działać skoro nawet elementów nie pobierasz.


RE: Problem z kodem html - niewyrzyty777 - 13-06-2011

Jak zauważysz to w kodzie jest tylko przypisywana wartość np. "1" komórce o jakimś "id" a nastepnie ma to być wyświetlone w polu tekstowym. I to wszystko. czyli raczej bez pobierania sie obejdzie.
Problem jest natomiast z :
Kod:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Jak usunę to, to wszystko jest OK. Nie wiem co jest nie tak z tym kodem.


RE: Problem z kodem html - Kartofelek - 14-06-2011

Nie no spoko. Tak się tylko pytałem. Skoro wiesz lepiej to dobrze ;]

A ja i tak będę głupi i się będę upierał że w 1 wersji miałeś coś takiego jak pobranie elementu
Kod:
wtapianie  = document.getElementById('komorka_i');

a w drugiej to usunąłeś. Ale zaznaczam raz jeszcze - ja się nie znam Sad


RE: Problem z kodem html - niewyrzyty777 - 14-06-2011

Bez obrazy dla ciebie ale nie mędrkuj tylko powiedz mi dlaczego nawet wpisaną wcześniej linijką kodu (którą usunąłem) nie działa mi ten kod. Nie wiem czemu działa po usunięciu deklaracji DOCTYPE a z nią nie działa. Może funkcje źle napisałem albo źle ją uruchamiam. Przyznam, że nie wiem. Nie jestem geniuszem w tych rzeczach a potrzebuje ten skrawek kodu do mojej strony.


RE: Problem z kodem html - Kartofelek - 14-06-2011

Już ci pisałem 2 razy. Ale nie uważasz.
Napisałem wyraźnie - przenieś SKRYPT na koniec strony. Nic więcej miałeś nie robić, ale ty pozmieniałeś kod.

Czemu ci nie działa jak dodajesz doctype? Może dlatego że tag SCRIPT wymaga podania typu?
Zapraszam do lektury i więcej pokory:

http://doman.art.pl/kursjs/kurs/pierwszy_skrypt.html

Z mojej strony temat zakończony. Niech inni ci pomagają bo miłe to to nie jest.


RE: Problem z kodem html - niewyrzyty777 - 14-06-2011

Nikogo nie miałem zamiaru obrażać ale jak ci ktoś pisze coś co już próbowałeś robić to ciężko nie jest odreagować w ten sposób. Mimo to dzięki. Będę musiał coś innego wymyślić albo inną drogę obrać w pisaniu nowego kodu.
pzdr
Problemem był fragment kodu który był źle zapisany:
Kod:
wtapianie  = document.getElementById('komorka_i');
komorka_i.value = '1'
a powinno być:
Kod:
wtapianie  = document.getElementById('komorka_i');
wtapianie.value = '1'
no i po sprawie.
Dzieki za pomoc. Temat do zamknięcia.


RE: Problem z kodem html - Pedro84 - 14-06-2011

Czego nie rozumiesz z tej wiadomości?

Kartofelek, podał Ci R O Z W I Ą Z A N I E.

(13-06-2011, 20:46)Kartofelek napisał(a): Zadanie 1:
Wyjaśnij nieprawidłowość poniższego kodu

Kod:
wtapianie = document.getElementById('komorka_i');
komorka_i.value = '1'
...
...
<input name="komorka_n1" id="komorka_i1" type="text" value="test warunek" />

Rozwiązanie:
Powyższy kod oznacza "pobierz element komorka_i i zrób z nim coś tam". Niestety skrypt nie widzi danego elementu, bo gry się wykonuje, element komorka_i jeszcze nie istnieje (wczytuje się później ponieważ kod czytany jest z góry na dół)

Odpowiedź:
Skrypty zawsze umieszczamy na końcu strony, tuż przed tagiem </body>. Dzięki temu skrypty widzą nasze elementy + wczytuje pierwsze wczytuje się to co jest najważniejsze - czyli treść sttrony.

Zaliczone na 5 Smile

Ps. Patrz na samym dole czarna ramka):
http://doman.art.pl/kursjs/kurs/pierwszy_skrypt.html