Avatar billede cmplicity Nybegynder
21. maj 2013 - 12:51 Der er 1 kommentar

JQuery skal hente indhold via AJAX

Hej med jer,

Jeg kunne godt bruge et kode eksempel (bare super simpelt) på en side hvor der er nogle input felter og når man trykker på send knappen, skal den smide info over i en anden fil, der generer nogle output, som bliver indlæst i nogle andre input felter på den første side... med jquery..

Tusinde tak :)
Avatar billede Slettet bruger
25. maj 2013 - 01:21 #1
Mit "system" - og overhovedet det du beder om : )
- men det virker og er et ret "robust" setup - du skal bare file det til..

En javascript funktion find() - som kaldes andetsteds fra.

Den kontakter serveren via AJAX (vha. jQuery).
Serveren (PHP) søger i databasen, og returnerer nogle data.
- som javascript-funktionen så præsenterer.

JS:
function find(ord)
    {
    var ss = document.getElementById("log").innerHTML
    document.getElementById("log").innerHTML = "<h2 style='margin:0 8px'>Øjeblik...</h2>"
   
    $.ajax({
        dataType:    "json"
        ,url    :    "ajax.php"
        ,type    :    'POST'
        ,data    :    {"kommando"    :    "find"
                        ,"ord"        :    ord
                    }

        ,error: function(xhr, error) // alvorlige fejl - syntaxfejl i PHP f.eks.
            {
            alert("Ajaxfejl (find):"+error
                +"\nord:"+ord
                +"\nxhr.responseText:"+xhr.responseText)
            }

        ,success: function(data) // Det virkede !
            {
            if (data.fejl != undefined) // mine egne fejl
                {
                if (data.fejl == "NUL")
                    {
                    document.getElementById("log").innerHTML = ss // vis tidligere svar igen
                    alert("Ikke fundet")
                    }
                else
                    alert(data.fejl.replacesubstring("|#|","\n"))
                return
                }

            if (data.OK != undefined) // fjong - det fundne ligger i data.result - et array af JSON-objekter :)
                {
                var s = "<table id='likeOrd' border=1 cellpadding=0 cellspacing=0 style='margin-right:20px;width:100%'>"+
                        "<tr><th  style=text-align:left>    "+data.result.length+
                        "</th><th style=text-align:left>    Ord"+
                        "</th><th style=text-align:right>    Pt"+
                        "</th><th style=text-align:center>    E"+
                        "</th><th style=text-align:center>    F"+
                        "</th><th style=text-align:left>    Clue"+
                        "</th></tr>"
                for (var i=0;i<data.result.length;i++)
                    s += "<tr><td>"+i+"</td>"
                            +"<td style=cursor:pointer onclick=fyldi('"+data.result[i]['ord']+"')>"+data.result[i]['ord']+"</td>"
                            +"<td align=right>"+data.result[i]['point']+"</td>"
                            +"<td align=center>"+data.result[i]['egenavn']+"</td>"
                            +"<td align=center>"+data.result[i]['forkortelse']+"</td>"
                            +"<td align=right style='text-transform:none'>"+data.result[i]['clue']+" </td>"
                        +"</tr>"
                document.getElementById("log").innerHTML = s
                return
                }

            alert("hm.. Uventet svar fra databasen:\n"+dump(data))
            }
        });
    }


PHP (ajax.php)
<?php session_start();

mb_internal_encoding("UTF-8");

require "AA_CONST.php";
require "AA_SQL.php";
require "tools.php";

$funx = array("find","save","list","hent","slet","magi");

if (!isset($_POST['kommando']))                exit(json_encode(array("fejl"=>"Ingen kommando specificeret")));
if (!in_array($_POST['kommando'], $funx))    exit(json_encode(array("fejl"=>"Ukendt kommando:".$_POST['kommando'])));



if ($_POST['kommando'] == "find")
    {
    $ord = wash( $_POST['ord'],100);

    $result = runSQL("select * from dansk where ord like ? order by egenavn asc,ord asc",array("s",$ord));
    if (is_string($result))                    exit(json_encode(array("fejl"=>$result)));
    if (count($result)==0)                    exit(json_encode(array("fejl"=>"NUL"))); // fandt ikke noget

    // 2 variabler tilbage til JS OK og result (et array)
    exit(json_encode(array("OK"=>"Fjong","result"=>$result)));
    }


// flere funktioner herunder (i samme php-fil)


?>
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