Avatar billede heyn Nybegynder
23. juli 2013 - 16:39 Der er 4 kommentarer og
1 løsning

Køre script i baggrunden?

Hej Eksperter

Dette er sikkert et meget simpelt spørgsmål bare man ved hvor, men jeg kan altså bare ikke lige huske det.

Hvordan får jeg et javascript til at overføre data fra en form til et php script på en sådan vis at php scriptet kører i baggrunden uden at opdatere siden. Altså at det bliver kørt i baggrunden?
Og hvordan får jeg samme script til at returnere data i f.eks. et array - altså igen uden at den oprindelige side opdateres, men at javascriptet får adgang til disse data?

Venligst Christian
Avatar billede moddi100 Seniormester
23. juli 2013 - 16:52 #1
Du benytter dig af iframes. Når der trykkes på upload knappen, sætter du target="iframeID" på din formular, hvorfor du kan uploade koden. Imens den uploader vil du så kunne foretage almindelige javascript forespørgsler til serveren. Der findes massere af kodeeksempler på princippet hvis du prøver google
Avatar billede claes57 Ekspert
23. juli 2013 - 18:27 #2
jeg tror, du skal ind over javascript ajax ( https://www.google.dk/search?q=javascript+ajax )
Avatar billede MadsHaupt Juniormester
23. juli 2013 - 18:38 #3
Du kan se denne video tutorial: http://www.youtube.com/watch?v=woNQ2MA_0XU, hvis du tester localt så skal status være lig 0.
Avatar billede heyn Nybegynder
24. juli 2013 - 13:24 #4
Jeg var måske ikke helt præcis.
Nu kan jeg godt huske at det var noget med AJAX.

Men mit php-script anvender også SOAP.

Jeg er helt ny i SOAP (og kan kun MEGET lidt med AJAX).

I princippet ønsker jeg noget i stil med:

1) Javascript kalder en php side med SOAP medfølgende nogle argumenter. Den er placeret på localhost.
2) Ud fra argumenterne udfører php siden nogle opgaver i SOAP på en anden server.
3) php siden returnerer et array med diverse værdier til javascriptet.

Har i nogen ide til hvordan det skal gøres?

Venligst Christian
Avatar billede heyn Nybegynder
31. juli 2013 - 12:57 #5
Jeg løste det på følgende måde:

java script:
  var Arr = ["Dette","er","et","array"];
  var httpRequest = null;
  httpRequest = new XMLHttpRequest();
  httpRequest.open('POST', 'request.php',true);
  httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  httpRequest.onreadystatechange = function(){
    if (httpRequest.readyState == 4) {
      var newjsonArr = httpRequest.responseText;
      var newArr = JSON.parse(newjsonArr);
      document.getElementById("0").value = newArr[0];
      document.getElementById("1").value = newArr[1];
      document.getElementById("2").value = newArr[2];
      document.getElementById("3").value = newArr[3];
      document.getElementById("4").value = newArr[4];
    }
  }
  var sendtext;
  sendtext = "jsonarr="+JSON.stringify(Arr);
  httpRequest.send(sendtext);

PHP-kode:
  $arr = json_decode($_POST["jsonarr"]);
  $newarr = $arr;
  $newarr[4] = "som du ser";
  echo json_encode($newarr);
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