Avatar billede alexanderss Nybegynder
11. oktober 2008 - 13:41 Der er 12 kommentarer

Ajax reload af oliepriser

Hej!
Jeg har et php script til at hente de aktuelle oliepriser fra Yahoo.
Jeg skal "bare" have et script til at hente disse oliepriser fra mit script via. AJAX (jeg forestiller mig en form for src="??"), så der ikke loades oppe i statusbaren osv.
Avatar billede chrisbookwood Nybegynder
11. oktober 2008 - 16:31 #1
Prøv at tage et kig på følgende side - så sku det være lige til!

http://www.w3schools.com/Ajax/default.asp
Avatar billede olebole Juniormester
11. oktober 2008 - 17:08 #2
<ole>

w3schools's tutorial om Ajax har - som så mange andre såkaldte 'Ajax-tutorials' - stort set intet med Ajax at gøre. Årsagen er nok, at Ajax ikke er noget, man 'bare' bruger - med mindre man er rigtig 'hård' til JavaScript, DOM, CSS og HTML.
Helt generelt er w3schools fyldt med alvorlige fejl, misforståelser og mangler. Det er p.gr.a. den manglende troværdighed langtfra noget godt sted at forsøge at lære webkode.

I denne tråd:
    http://www.eksperten.dk/spm/817625

- har jeg lavet et par små eksempler på Ajax-kald mod PHP - og returnering af JSON-formateret data

/mvh
</bole>
Avatar billede alexanderss Nybegynder
14. oktober 2008 - 13:23 #3
Hej !
Tak for svarene.
Men jeg kan kun skrive PHP og jeg har minimal erfaring inden for javascript, så er det muligt at I kan lave en færdig kode til det her?
Avatar billede w13 Novice
14. oktober 2008 - 13:25 #4
Det tror jeg ikke, du skal regne med. Ajax kan hurtigt blive rimelig kompleks og det skal bygges op præcis til dit system og formål. =)

Den bedste løsning vil nok være, at du lærer JavaScript. Så kan du også meget hurtigere løse denne slags ting i fremtiden, og så har du dén ekstra kompetence. :) Det er da en god ting.
Avatar billede olebole Juniormester
14. oktober 2008 - 13:30 #5
- og du får heller ikke lov til at fjerne min blindtarm, uden du lærer det først. Webkodning er et fag - og man kan ikke kan forvente, man som udgangspunkt skal kunne det hele. Det skal som alt andet læres - og det tager tid  ;o)
Avatar billede alexanderss Nybegynder
16. november 2008 - 19:25 #6
Tak for kommentarerne :-)

Jeg har arbejdet på en kode:
<script language="javascript"  type="text/javascript">
function createRequestObject() {
    var ro;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer"){
        ro = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
        ro = new XMLHttpRequest();
    }
    return ro;
}

var http = createRequestObject();
window.setInterval("sndReq()", 2*1000); // function calls sndReq() every specified seconds

function sndReq() {
    http.open('get', 'olie.php');
    http.onreadystatechange = handleResponse;
    http.send(null);
}
function handleResponse() {
    //document.getElementById("ajaxstock").innerHTML ="responded";
    if(http.readyState == 4){
        var response = http.responseText;
        if (response != responseold || responsecheck != 1) {
            var responsecheck = 1;
            document.getElementById("ajaxstock").innerHTML = http.responseText;
            var responseold = response;
        }
    }
}
</script>

<DIV id="ajaxstock">Henter...
</DIV>
<script type="text/javascript">
sndReq();
</script>


Men den virker kun i Firefox og Safari, hvad har jeg gjort forkert?
Avatar billede olebole Juniormester
16. november 2008 - 20:57 #7
Det er formodentlig denne betingelse, som jo aldrig lader noget slippe igennem, når variablerne ikke er defineret. Så er de jo aldrig forskellige  ;o)

Hvorfor roder du stadig rundt med en dybt forældet XMLHttpRequest wrapper og gammel, invalid innerHTML-kode?
Avatar billede olebole Juniormester
16. november 2008 - 20:58 #8
Ups ... det var denne betingelse, jeg mente:
    if (response != responseold || responsecheck != 1) {
Avatar billede alexanderss Nybegynder
16. november 2008 - 21:45 #9
Gider du så ikke i det mindste at hjælpe mig med at omskrive koden?
Avatar billede olebole Juniormester
17. november 2008 - 01:23 #10
Prøv at kikke på eksemplerne i den tråd, jeg linkede til. Jeg kan ikke omskrive koden eller lave et udførligt eksempel, når jeg ikke ved præcis, hvad du skal lave
Avatar billede alexanderss Nybegynder
17. november 2008 - 10:04 #11
jamen den skal sådan set bare hente indholdet på olie.php hvert x antal sekunder.
Avatar billede olebole Juniormester
17. november 2008 - 11:33 #12
Nej, det skal den nok ikke. De to ting hænger jo sammen, så olie.php skal også laves om
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