logo   AJAX - Response.




Response er den del af HTTP-protokollen, der overfører data fra webserveren til browseren.


Når AJAX-data kommer tilbage til browseren, skal den nødvendige opsætning (HTML-tags og CSS-selektorer) være placeret omkring dataene, så de umiddelbart kan placeres på skærmen.


Denne opsætning kan foretages enten i PHP-programmet eller i js-programmet:


  • PHP
    Dataene incl. opsætning opsamles i en variabel med konkateneret værdi (de enkelte dele samlet med '.'). Variablen skal prefixes med 'echo'. Der kan kun returneres 1 variabel. Variablens data kanaliseres umiddelbart igennem jS-programmet til DOM.
  • jS
    De rene data samles i en array i PHP og overføres som en JSON-fil til jS-programmet. Opsætningen foretages i jS-programmet. Dataene indgår derefter direkte i DOM. Der kan kun overføres 1 array fra PHP.


Det er god kodeskik at anvende javaScript til opsætning af HTML-koden.


Opsætning i PHP


php

Der må kun forekomme 1 echo fra et PHP program (1 for hver 'if' mulighed). Datastrengen bliver overført direkte til browserens DOM. De enkelte elementer, der indgår i strengen skal være konkatenerede. Strengen kan indeholde både php-variabler, tekst, tags og css-selektorer.

echo 'Navn er: ' . $name;


js

Dataene sendes direkte videre til browserens DOM identificeret ved selektoren #resp.

.done(function (response) {
    $("#resp").html(response);
});


html

Dataene vises lokalt i HTML uden opdatering af hele skærmen.

<div class="response">
    < id="resp"></p>
</div>


Opsætning i js


Data, der skal retur til skærmbilledet, opsamles i PHP i en array. Arrayen konverteres med json_encode() til en json-fil, der af echo sendes mod browseren.

php

$ar = array("error"=>0, "navn"=>$name, "mail"=>$email, "msg"=>$message);
} else {
$ar = array("error"=>1, "msg"=>"mangler parameter");
}
echo json_encode($ar);


js

.done(function(response)) opfanger json-filen.
Via konkatenering knyttes data fra arrayen, tekst, tags og css-selektorer til en variabel.
Dataene sendes til browserens DOM identificeret ved selektoren #resp.

.done(function (response) {
    // data kommer over som et json array
    // her laves html formatering vha js
    var str ="";
       str +="<div>";
       if(response.error==0){
          str +="navnet er "+response.navn+ "<br />";
          str +="beskeden er fra "+response.mail+ "<br />";
          str +="beskeden lyder "+response.msg+ "<br />";
       }
       else{
          str +="fejl beskeden lyder "+response.msg+ "<br />";
       }
       str +="</div>";
    $("#resp").html(str);
    });


html

Dataene vises lokalt i HTML uden opdatering af hele skærmen.

<div class="response">
    < id="resp"></p>
</div>




















x
x