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