Ajax functie
Ik zit met een klein probleempje met een ajax functie,
ik lees er momenteel een boek over en heb daarin een oefening die ziet er als volgt uit:
Je hebt een span en de bedoeling is dat als je er op klikt dat de 1 van na de functie in de database verschijnt, ik heb dus onclick="updatedata("1")" toegevoegd aan die span dat snap ik, maar nu komt het probleem. Een duidelijk voorbeeld stond er niet in het boek dus dit is de code die ik reeds heb:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
function updatedata(data) {
var request = $.ajax({
url: "data.php",
type: "POST",
dataType: "html"
});
}
var request = $.ajax({
url: "data.php",
type: "POST",
dataType: "html"
});
}
Code (php)
1
2
3
4
2
3
4
if(isset($_POST['data']) && !empty($_POST['data'])){
$data=$_POST['data'];
INSERT INTO DATABASE
}
$data=$_POST['data'];
INSERT INTO DATABASE
}
Omdat dit script niet relevant is heb ik het ook niet aangepast aan SQLinjection enzo.
Hopelijk kan iemand mij helpen want dit lijkt me wel zeer interessant te gebruiken op websites!
Gewijzigd op 21/01/2014 07:38:14 door Jos Verstraeten
Maar goed, laten we dan gewoon beginnen op regel 1: quotes!
Dubbele quotes binnen dubbele quotes, dat kan natuurlijk niet goed gaan.
het script dat hierboven staat heb ik getest en het werkt niet,
ik weet niet genoeg van jquery om te zeggen of de functie daadwerkelijk uitgevoerd wordt of niet.
Om te testen had ik in de database de waarde op 0 gezet wanneer ik op de span klik had ik verwacht dat het op 1 ging komen te staan, dit is echter niet gebeurd. Enig idee hoe het komt ?
Ondertussen de onclick="updatedata("1")" veranderd naar onclick="updatedata('1')" ALvast bedankt voor je hulp!
Uit de jquery ajax documentatie (http://api.jquery.com/jquery.ajax/):
Quote:
data
Type: PlainObject or String
Data to be sent to the server. It is converted to a query string, if not already a string. It's appended to the url for GET-requests. See processData option to prevent this automatic processing. Object must be Key/Value pairs. If value is an Array, jQuery serializes multiple values with same key based on the value of the traditional setting (described below).
Type: PlainObject or String
Data to be sent to the server. It is converted to a query string, if not already a string. It's appended to the url for GET-requests. See processData option to prevent this automatic processing. Object must be Key/Value pairs. If value is an Array, jQuery serializes multiple values with same key based on the value of the traditional setting (described below).
Je ajax call moet dus zoiets worden:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
function updatedata(data) {
var request = $.ajax({
url: "data.php",
type: "POST",
data: {data: data},
dataType: "html"
});
}
var request = $.ajax({
url: "data.php",
type: "POST",
data: {data: data},
dataType: "html"
});
}
Merk ook op dat overal het keyword 'data' voor gebruiken waarschijnlijk niet zo handig is, maar ik heb simpelweg jouw benamingen overgenomen.
Verder kan je via je developer tools in je browser zien of een call wordt uitgevoerd of niet.
Gewijzigd op 21/01/2014 18:09:00 door Jos Verstraeten