Pokaż wyniki 1 do 4 z 4

Temat: Problemy z parent

  1. #1
    Zarejestrowany
    Jul 2008
    Postów
    57

    Domyślnie Problemy z parent

    Mam taki kod:
    index.html
    Kod
    <html>
    <frameset cols="30%,70%">
    <frame src="ruben.html" name="ramka1">
    <frame src="lech.html" name="ramka2">
    </frameset>
    </html>


    ruben.html
    Kod
    <form name="forumlarz" action="lala.html">
    <input type="text" name="pole" value="ruben">
    </form>


    lech.html
    Kod
    <html>
    <form name="test">
    <input name="var1" value="2"><br>
    </form>
    wynik: <input name="wynik" value="0">
    <script type="text/javascript">
    function onloadHandler()
    {
    document.getElementsByName('wynik')[0].value=
    parseFloat (parent.ramka3.formularz.pole.value);
    }
    </script>
    <body onload="onloadHandler();">
    </body></html>


    Jak widać na powyższych kodach próbuje za pomocą parent pobrać wartość z pola formularza jednej ramki do drugiej. Jednak coś nie działa. Zapewne zrobiłem gdzieś błąd w " parseFloat (parent.ramka3.formularz.pole.value);". Może mi ktoś pomóc i wskazać błąd.

  2. #2
    Zarejestrowany
    Jan 2007
    Skąd
    somewhere in time
    Postów
    510

    Domyślnie

    widze że się bawisz w coś na podobe do ajaxa
    moja podpowiedź
    document.getElementsByName("wynik")[0].value=top.frames["ramka1"].document.getElementsByName("pole")[0].value;

    jako ciekawostke moge powiedzieć podobne rozwiązania do tego co ruben zrobił kiedyś na początku zanim jeszcze technologia ajax nie była rozpowszechiona to webmasterzy aby przeslać albo odebrać dane z lub do serwera używali czegoś takiego wlaśnie, Tzn ramke sie ustawia tak żeby była niewidoczna i odpowiednie się w nią wklada i wyjmuje dane. ( czyli tak jakby php tylko bez przeładowania strony albo js bez ajaxa )
    A ona sobie w tle łączy się z serwem i pobiera albo zapisuje dane, oczywiście to wszystko jest niewidoczne dlatego się nazywa ukryta ramka.

  3. #3
    Zarejestrowany
    Jul 2008
    Postów
    57

    Domyślnie

    Wielkie dzięki Ionwall, na firefox działa, że mucha nie siada:P, ale na ie niestety nie. Tak samo po wysłaniu na serwer Ten kod działa mi tylko na lokalnym dysku. Można go jakoś przerobić żeby działał na serwerze?
    Ostatnio edytowane przez ruben : 11-09-2008 - 20:17

  4. #4
    Zarejestrowany
    Dec 2006
    Skąd
    Kielce
    Postów
    1,767

    Domyślnie

    Nie wiem skąd ty tam wytrzasnołeś ramka3 :P
    I nie wiem po co dawać kod js w lech.html zamiast dać go w index.html
    ale skoro tak chcesz ok :P

    Chcesz pobrać wartość ramki1 do ramki2 - nie ma sprawy:
    Wygląda to tak ze ramka1 jest rodzeństwem ramka2 - więc jak to z rodzeństwem bywa cię nie posłucha :) trzeba powiedzieć tacie żeby tamtemu coś powiedział :)

    parent.ramka1.forumlarz.pole.value - dzięki temu masz wartość pola z ramki1 w ramce2 :) dalej już chyba z górki :)

    tutaj masz prosty przykład jak powinny wyglądac odwołania do rodzeństwa (ja bym wrzucił kod js jako funkcje do głównego pliku - tj. polecił tacie żeby to on policzył i dał wynik - a co się będzie opier...lał :)

    Kod:
    ___index.html______________________________
    <html>
    <head>
        <title>MegaProgram do liczenia średniej</title>
    </head>
    <frameset cols="50%,50%">
    <frame src="in.html" name="frame1">
    <frame src="out.html" name="frame2">
    </frameset>
    </html>
    Kod:
    ___in.html______________________________
    <html>
    <head>
        <title>Inputs</title>
    </head>
    <body>
        <form name="form">
            <input type="text" name="firstNumber" value="2">
            <input type="text" name="secondNumber" value="4">
        </form>
    </body>
    </html>
    Kod:
    ___out.html______________________________
    <html>
    <head>
        <title>Outcome</title>
    <script type="text/javascript">
    function average(){
        var firstNumber = parseFloat(parent.frame1.document.form.firstNumber.value);
        var secondNumber = parseFloat(parent.frame1.document.form.secondNumber.value);
        var outcame = (firstNumber + secondNumber)/2;
        return outcame;
    }
    function writeOutcome(){
        document.form.outcome.value = average();
    }
    </script>
    </head>
    <body>
        <form name="form">
            <input type="text" name="outcome">
            <input type="button" value="Policz średnią" onclick="writeOutcome()">
        </form>
    </body>
    </html>
    Ostatnio edytowane przez eMCe : 12-22-2008 - 17:34
    Agencja reklamy kielce (mały kilkudniowy case pozycjonerski )

Podobne wątki

  1. Wskaźnikologia - problemy
    By lukasz6547 in forum C/C++
    Odpowiedzi: 28
    Autor: 07-14-2008, 14:13
  2. Problemy z gdb
    By lukasz6547 in forum Hacking
    Odpowiedzi: 1
    Autor: 04-13-2008, 15:33
  3. Linux problemy
    By Malcolm2600 in forum Linux
    Odpowiedzi: 3
    Autor: 03-15-2008, 12:38
  4. Moje problemy z c++
    By w4j in forum C/C++
    Odpowiedzi: 18
    Autor: 03-03-2007, 23:49

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj