Avatar billede n_j_b Nybegynder
14. juli 2010 - 21:33 Der er 7 kommentarer og
1 løsning

Spørgsmål til AJAX/PHP via form

Jeg er ny indenfor AJAX og har brug for lidt hjælp til nedenstående. Jeg tror, at det går galt efter "$.ajax({" et eller andet sted, men kan ikke finde ud af hvorfor.

På forhånd - Tak for din hjælp!

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">

    function navnText() {
        var value = $("input[name=navn]").val();
        if( value == false ) {
        $("#results").html("Indtast navn");
        } else {
            $.ajax({
               
                type: "POST",
                url: "ajax_call.php",
                data: "navn=" + value,
                error: function() { alert("Fejl"); },
                succes: function( data ) { $("#results").html("data"); }                   
                        })
                            }
                        }
</script>

<form method="post" action="post">

<input type="text" name="navn" />
<input type="button" onclick="navnText()" value="Submit form" />

</form>

<div id="results"></div>
__________________________________________________________________
ajax_call.php

<?php

echo $_POST['navn'];

?>
Avatar billede repox Seniormester
14. juli 2010 - 21:46 #1
<troll> ad... jquery... </troll>

Hvad er problemet helt præcist? Du skriver bare at 'du tror at det går galt efter "$.ajax" et eller andet sted' - hvad går galt? Hvad er det nuværende resultat? hvad er det ønskede resultat?

Mit gæt er at din #results div indeholder ordet 'data' når du har trykket?
Avatar billede n_j_b Nybegynder
14. juli 2010 - 23:27 #2
Det har du ret i. jeg kunne godt have uddybet spørgsmålet lidt bedre, så det gør jeg lige..

#result div indeholder ikke ordet data, men er bare tomt selvom inputfeltet ikke er tomt ved onclick. Hvis feltet er tomt ved onclick, skriver #result div rigtigt nok "Indtast navn".
Dvs. at den læser if( value == false ) rigtigt nok, men giver ikke noget output, hvis den skal læse ajax funktionen der kommer efter "} else {".?
Avatar billede repox Seniormester
15. juli 2010 - 10:19 #3
Jeg tror det er fordi at du har stavet success forkert. Der mangler et 's' i enden.

Udover det, vil indholdet af div'en bagefter bare vare 'data' og ikke dit output fra ajax_call.php
Du skal huske at fjerne quotes rundt om 'data' så der altså står:
success: function( data ) { $("#results").html(data); }
Avatar billede n_j_b Nybegynder
15. juli 2010 - 11:33 #4
Nu virker det perfekt. Det skal du da have point for..!

Tusind tak!
Avatar billede repox Seniormester
15. juli 2010 - 11:35 #5
Her kom et svar
Avatar billede Pkallesoe Nybegynder
02. marts 2011 - 07:58 #6
Hvorfor "ad jquery" ?:)
Avatar billede repox Seniormester
02. marts 2011 - 08:13 #7
Det er et spørgsmål om religion; jeg gider ikke inddrage så tåbeligt meget kode for at udføre så (relativt) simple opgaver som AJAX. Mængden af javascript kan reduceres væsentligt for de fleste hvis de skrev koden selv til de ting...

Ofte vil de fleste her snakke om udviklingshastighed og browserkompabilitet - og jeg skal da være den første til at sige at man ikke skal genopfinde hjulet - men du fylder vel heller ikke din bil med reservedele og smart værktøj for år kunne køre i den?
Avatar billede n_j_b Nybegynder
02. marts 2011 - 10:19 #8
Det er rigtigt, at det er en kompliceret må at udføre en simpel opgave på. Jeg bruger kun denne metode i særlige tilfælde. F.eks. hvis en bruger tilmelder sig et nyhedsbrev og eks. formen er længere nede på siden (siden er scrollet ned). Så kan brugeren fortsætte hvor han/hun slap på ganske kort tid, da browseren ikke skal opdateres og ikke scroller op igen.
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