Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> checkbox i dynamiczny formularz, niby proste, a ja tej składni nie znam :(
cyngiel
post
Post #1





Grupa: Zarejestrowani
Postów: 101
Pomógł: 1
Dołączył: 28.12.2003
Skąd: Gdańsk

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


założenia: mam pare checkboxow i do tego obrazek + formularz
oczekiwany efekt:po zaznaczeniu checkboxa obrazek się chowa, pojawia się pole formularzyka

znalazlem nawet i na forum.php.pl
coś działającego z założeń podobnie(zależnie od checkboxa)
ale moja znajomość składni JS jest tak znikoma, że nic mi to nie daje, mógłby mi ktoś podać jakiś link do tutka w tej sprawie, albo jakiś skrypt



oto co znalazłem
http://forum.php.pl/lofiversion/index.php/t45652.html
http://forum.webhelp.pl/viewtopic.php?t=13...&highlight=
tutaj jest praktycznie ten sam problem co mój, z tym, że dla jednego chboxa i tak jakoś dziwnie rozwiązany, mi się wydaje, że najlepiej to na funkcji zrobić


z góry dziękuje za pomoc

pozdrawiam


  1. function ukryj(ch)
  2. {
  3.  
  4. obiekt = document.getElementById(ch);
  5. if (obiekt.style.display == "none")
  6. {
  7. obiekt.style.display = "block";
  8. }
  9.  
  10. else
  11. {
  12. obiekt.style.display = "none";
  13. }
  14. }




coś takiego połowicznie załątwiło sprawe, po klkinięciu pojawia się formularz(display:none), ale obrazek się nie chowa, musiałem usunąć id z obrazka, nie wiem czemu to nie chce ze sobą współpracować, funkcja niby poprawna, ale coś nie gra :/

może jakaś mała wskazóweczka?

nikt mi nie pomoże?

przecież problem nie jest wcale jakiś złożony, a ja nie proszę tylko o jakieś wskazówki :/

Ten post edytował cyngiel 13.08.2006, 21:12:59


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Zajec
post
Post #2





Grupa: Zarejestrowani
Postów: 1 086
Pomógł: 8
Dołączył: 10.12.2003

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


Jak wywołujesz tę funkcję i co ma jakie id przypisane?
Go to the top of the page
+Quote Post
cyngiel
post
Post #3





Grupa: Zarejestrowani
Postów: 101
Pomógł: 1
Dołączył: 28.12.2003
Skąd: Gdańsk

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


<tr><td><img src="adres"></td>
<td><div id="$i" style="display: none">Załaduj ten plik:<input type="file"></div></td>
<td> <input type="checkbox" name="kasuj" onclick="ukryj($i)"> </td></tr>



tak to działą obecnie, w php oczywiście, pousuwałem to co nieistotne dla problemu- mam nadizeje, że wszystko jasne
jeśli do img przydziele id, to po kliknięciu checkboxa znika obrazek, a nie pojawia się formularz

Ten post edytował cyngiel 14.08.2006, 22:56:10


--------------------
Go to the top of the page
+Quote Post
Zajec
post
Post #4





Grupa: Zarejestrowani
Postów: 1 086
Pomógł: 8
Dołączył: 10.12.2003

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


Kod
function ukryj(ch)
{
    if (obiekt = document.getElementById(ch))
    {
        if (obiekt.style.display == "none")
        obiekt.style.display = "block";
        else
        obiekt.style.display = "none";

        obiekt.parentNode.parentNode.getElementsByTagName('img')[0].style.display="none";
    }
}


Ten post edytował Zajec 15.08.2006, 00:28:24
Go to the top of the page
+Quote Post
cyngiel
post
Post #5





Grupa: Zarejestrowani
Postów: 101
Pomógł: 1
Dołączył: 28.12.2003
Skąd: Gdańsk

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


wielkie dzięki, bardzo mi pomogłeś, fajnei, jeszcze jakbyś objaśnił, co miałęm źle, czemu nie działało, a co w swoim skrypcie dałeś, ale to zawsze troche więcej roboty, więc ciesze się, że jest jak jest, próbowałem to troche zmodyfikowac, gdyż po zaznaczeniu checkboxa obrazek znika i gdy go odznaczamy już się nie pojawia, próbowałem to zmienić na coś takiego:


Kod
function ukryj(ch)
{
    if (obiekt = document.getElementById(ch))
    {
        if (obiekt.style.display == "none")
        obiekt.style.display = "block";
        else
        obiekt.style.display = "none";

    if (obiekt.parentNode.parentNode.getElementsByTagName('img')[0].style.display == "none")
            obiekt.parentNode.parentNode.getElementsByTagName('img')[0].style.display = "block";
        else  
        obiekt.parentNode.parentNode.getElementsByTagName('img')[0].style.display = "none";

    }
}

teraz już działa jak chciałem, pierw źle to składniowo zapisałem, a potem miałem warunki źle- nie wiem czemu, wydawało mi się, że odwrotnie było dobrze, ale tak jakoś działa, czasem są problemy z myśleniem biggrin.gif

w każdym razie dzięki za pomoc smile.gif

Ten post edytował cyngiel 15.08.2006, 14:48:28


--------------------
Go to the top of the page
+Quote Post
Zajec
post
Post #6





Grupa: Zarejestrowani
Postów: 1 086
Pomógł: 8
Dołączył: 10.12.2003

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


Nie ma sprawy :-) Wytłumaczenie:


if (obiekt = document.getElementById(ch)) { }
dodałem po to, aby skrypt nie wywoływał błędu w przypadku nie odnalezienia elementu "obiekt".


Z pierwszych warunków usunąłem zbędne klamry, bo gdy instrukcja wystepująca po if'ie składa się tylko z jednej linijki, użycie klamerek nie jest koniecznie.


Co do dodanej konstrukcji:
parentNode - rodzic (czyli element wyżej)
getElementsByTagName('img') - szukanie w elemencie elementu "img"
[0] - użycie pierwszego znalezionego img'a


0 - pierwszy znaleziony img
1 - drugi znaleziony
2 - trzeci znaleziony
itd.
Go to the top of the page
+Quote Post
cyngiel
post
Post #7





Grupa: Zarejestrowani
Postów: 101
Pomógł: 1
Dołączył: 28.12.2003
Skąd: Gdańsk

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


dzieki, masz u mnie piwo winksmiley.jpg


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 18:44