Ajax shorthand.
Udover ajax() kan 5 andre jQuery metoder anvendes til at styre dataoverførsel. De er alle subset af ajax(), og nært knyttet til hentning af data. Tilknytningen til ajax() indebærer, at ajax() kan benyttes i stedet for, hvis man mangler en option i en shorthand.
Der refereres ofte samlet til de 5 metoder som 'Ajax shorthand'.
Fokus er i eksemplerne på hentning af data fremfor, hvordan de skal / kan bruges. Dette indebærer, at koden relateret til 'Response' kan komme til at se anderledes ud.
$.get() | Sender forespørgsel til server og får svar tilbage. |
$.getJSON() | Bruger $.get til at hente JSON-data. |
$.getScript() | Bruger $.get til at hente jScript på serveren og udføre det. |
$.post() | Indtastning af &input-type data, der overføres til server til udførelse i php-program. |
load() | Bruger $.get til at hente indholdet i en specifik fil (f.eks. en RSS-fil). |
I alle 5 tilfælde består event-scriptet af 3 niveauer indlejret i hinanden:
- Indlæs
Styrer, hvornår filen skal indlæses og være klar til brug. Den samme for alle jQuery hændelser.
- Selektor og start
Selektor og event. Den selektor og event (her Button for dem alle) der skal starte koden i niveau3.
- Funktion med udførende kode
Indtil 4 parametre: $.get( url, [data], [callback function], [type] )
- URL
- Sti til og ident for det php.program,
- data
- callback function
- type
$.get()
Henter specifik txt-fil fra lokalt netværk til samlet indsættelse i aktuel side. ![mysql](/felles/ikoner/rodfir.gif)
Det er kun nødvendigt at rette filnavn i nedenstående.
<script>
$(document).ready(function(){
$("#loaddata").click(function(){
$.get("../testfiler/txt_testfil01.txt",function(ajaxresult){
$("#getrequest").html(ajaxresult);
});
});
});
</script>
HTML:
<button id="loaddata">Hent data</button>
<div id="getrequest"></div>
|
- $.get()
- Den ajax-funktion der skal udføres, samt sti til og navn på den fil på serveren, der skal hentes.
- function(ajaxresult)
- Funktion med brugervalgt navn på response.
- $("#getrequest")
- Brugervalgt ident for selektor til styring af, hvor de hentede data skal placeres på HTML-siden.
- html(ajaxresult)
- Det format, hvori de hentede data skal vises.
- <div id="getrequest"></div>
- Divboks til styring via selektor af, hvor de hentede data skal placeres.
$.getJSON()
Henter specifik JSON-fil fra lokalt netværk typisk til etablering af uddata. ![mysql](/felles/ikoner/rodfir.gif)
Nedenfor er fokuseret på hentning af filen, og ikke hvordan den skal bruges.
JSON-filer med arrays og parametre på niveau 2 eller højere kræver et særligt program til udpakning.
For under udvikling at sikre, at der er 'hul igennem' kan der etableres 'append' for et par af niveau-1 parametre - som beskrevet.
<script>
$(document).ready(function(){
$("#btnjson").click(function(){
$.getJSON("../../testfiler/a.json",function(ajaxresult){
$("#forNavn").append(ajaxresult.fornavn);
$("#efterNavn").append(ajaxresult.efternavn);
.....
});
});
});
</script>
HTML:
<button id="btnjson">Hent JSON fil</button>
<p id="forNavn">Fornavn: </p>
<p id="efterNavn">Efternavn: </p>
....
|
- $.getJSON()
- Den ajax-funktion der skal udføres, samt sti til og navn på den fil på serveren, der skal hentes.
- function(ajaxresult)
- Funktion med brugervalgt navn på response.
- Rosponse:
- $("#fornavn"), $("#efternavn")
- Brugervalgt ident for selektor til tilknytning af parameter-navn til et <p-tag, tabelfelt etc. på HTML-siden.
- append(ajaxresult.fornavn)
- Styring af, hvor response-parameter-værdi skal placeres med parameter-navn som selektor.
I ovennævnte kode er anvendt denne JSON-fil.
{
"fornavn": "Jens",
"efternavn": "Hansen",
"alder": 25,
"addresse":
{
"gade": "Østergade 15",
"postnr": "4711",
"bynavn": "Nørre Snedig"
},
"telefon":
[
{
"type": "Fast",
"nummer": "123 456 78"
},
{
"type": "Fax",
"nummer": "123 456 79"
}
]
}
|
$.getScript()
Henter en specifik .js-fil ind i klienten og udfører den. ![mysql](/felles/ikoner/rodfir.gif)
<script>
$(document).ready(function() {
$("#driver").click(function(event){
$.getScript('/jquery/result.js', function(jd) {
// Call custom function defined in script
CheckJS();
});
});
});
</script>
<p>Click on the button to load result.js file:</p>
<div id="stage" style="background-color:blue;">
STAGE
</div>
<input type="button" id="driver" value="Load Data" />
|
$.post()
Indtastning af data i <input-type felter. Disse overføres til server og indgår i styingen af 'baggrunds' php-program. ![mysql](/felles/ikoner/rodfir.gif)
Der er intet <FORM-tag. Løsningen er en forenklet version af en normal <FORM.
<script>
$(document).ready(function(){
$("#loaddata").click(function(){
txtname=$("#txtinput").val();
txtlocation=$("#txtlocation").val();
$.post("baggrund.php",{ name:txtname, location: txtlocation },function(ajaxresult){
$("#postrequest").html(ajaxresult);
});
});
});
</script>
HTML:
<div id="postrequest"></div>
Navn: <input type="text" id="txtinput">
Sted: <input type="text" id="txtlocation">
<button id="loaddata">Send data</button>
|
- txtname=$("#txtinput").val() og txtlocation=$("#txtlocation").val()
- Variabelnavn med tilknyttet selektor til < input type ... . samt værdifelt som en funktion.
- ("tags_ajax.php"
- Sti til og navn på det php-program, der skal udføre post-aktiviteten. Se nedenfor.
- name:txtname, location: txtlocation },function(ajaxresult)
- Streng for hvert lt;Input-felt med: feltets 'name' og variabel,navn fra ovenfor. Svarer til 'value'-feltet.
- function(ajaxresult)
- Funktion med brugervalgt navn på response.
- $("#postrequest")
- Brugervalgt ident for selektor til styring af, hvor de hentede data skal placeres på HTML-siden.
- html(ajaxresult)
- Det format, hvori de hentede data skal vises og selektor til placering af response på HTML-side.
"baggrund.php"
$post_name=$_REQUEST["name"];
$post_location=$_REQUEST["location"];
if( $post_name )
{
echo "Anført navn: ". $post_name ."<br>";
echo "Anført sted:" .$post_location;
}
|
I stedet for $_POST anvendes $_REQUEST til at overføre <input-type dataene fra klienten til serveren. Bortset derfra vil php.programmet være et almindeliget php-program, der udfører de relevante opgaver. Mulighederne for fejlrettelse synes dog ikke at være de bedste.
$.load()
Henter specifik fil til samlet indsættelse i et DOM-element. ![mysql](/felles/ikoner/rodfir.gif)
<script>
$(document).ready(function(){
$("#loaddata").click(function(){
$("#loadrequest").load("../../testfiler/txt_testfil01.txt");
});
});
</script>
HTML:
<button id="loaddata">Hent fil</button>
<div id="loadrequest"></div>
|
- $("#loadrequest")
- Brugervalgt ident for selektor til styring af, hvor de hentede data skal placeres på HTML-siden.
- load(ajaxresult)
- ajax()-funktion, der som response sender data fra den tilknyttede fil til klienten i HTML-format.
- <div id="loadrequest"></div>
- Divboks til styring via selektor af, hvor de hentede data skal placeres.
|