Avatar billede phpbegynder2004 Nybegynder
05. april 2009 - 20:16 Der er 6 kommentarer

jQuery funktion

Jeg starter med at loade en side "hent.htm" ind på min hovedside. hent.htm indeholder en form.
Når man submitter for, skulle dette gerne trigge ajaxForm() og formen skulle submittes og kun selve diven #poll skal opdateres.
Dette sker dog ikke. Det lader til, at et kald med #id ikke virker fra en ajax-underside.

Er det noget I kan hjælpe med?

På forhånd tak!


--- main.htm ----
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
    <title>asdas</title>
    <script type="text/javascript" src="jquery-1.3.2.js"></script>
    <script type="text/javascript" src="jquery.form.js"></script>
    <script type="text/javascript">
    $(document).ready(function() {
        $('#poll').load('hent.php');
       
        $('#myForm').ajaxForm({
            target: '#poll',
        });
       
    });
   
    </script>
  </head>
  <body>
  Her er en form:
  <div id="poll">Her vil hent.htm blive hentet ind</div>
  </body>
  </html>



----hent.htm----
<form id="myForm" action="hentPoll.php" method="post">
  <input type="text" name="tekst">
  <input type="submit" name="submit" value="Gem">
</form>
Avatar billede softspot Forsker
05. april 2009 - 21:16 #1
Prøv at udføre tildeling af options på formularen efter load er udført:

    $(document).ready(function() {
        $('#poll').load('hent.php', function() {
            $('#myForm').ajaxForm({
                target: '#poll',
            });
        });
    });
Avatar billede softspot Forsker
05. april 2009 - 21:25 #2
Ups! Der har vist sneget sig en syntakfejl med ind i din kode (som jeg så kopierede med :-)).

    $(document).ready(function() {
        $('#poll').load('hent.php', function() {
            $('#myForm').ajaxForm({
                target: '#poll'
            });
        });
    });

Jeg hæfter mig i øvrigt ved at du læser hent.php og ikke hent.htm som du angiver i spørgsmålets tekst...(?)
Avatar billede phpbegynder2004 Nybegynder
06. april 2009 - 16:05 #3
Tak for hjælpen. Form.htm var base en tastefejl.:)

Det virker næsten nu. Første gang man submitter fungerer det, men submitter man igen fungerer javascript igen ikke. Man bliver nemlig sendt videre til hent.php
Har det noget at gøre med hvordan target hentes?
Avatar billede softspot Forsker
06. april 2009 - 17:15 #4
Jeg vil mene du skal sætte din action på formularen (efter den er indlæst med .load) til noget javascript der kalder .ajaxSubmit.

.ajaxSubmit kan dels tage et "map" med options, eller en funktionsreference til en funktion der skal kaldes hvis afsendelsen var en success.

Jeg har ikke lige abejdet med ajaxSubmit endnu, men jeg vil mene at den skulle være nogenlunde ligetil at sætte op i .load-funktionens callback.

Måske noget i stil med dette (totalt utestet og jeg har lidt travlt lige nu, så du får bare mit umiddelbare bud :-)):


  $(document).ready(function() {
        $('#poll').load('hent.php', function() {
            $('#myForm').ajaxForm({
                target: '#poll',
                action: function() {
                    $.ajaxSubmit()
                }
            });
        });
    });

Alternativt skal du ind og arbejde med formularens egenskaber efter du har kaldt .ajaxForm...
Avatar billede phpbegynder2004 Nybegynder
24. juli 2009 - 19:50 #5
Jeg lukker spørgsmålet nu. Tak for hjælpen. Hvis du er interesseret i point skal du lægge et svar :)
Avatar billede softspot Forsker
24. juli 2009 - 21:01 #6
Ok, så får du et svar :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester