Ajax functie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jos Verstraeten

Jos Verstraeten

21/01/2014 07:32:48
Quote Anchor link
Hey,

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)
PHP script in nieuw venster Selecteer het PHP script
1
<span class="datatype1" onclick="updatedata("1")"></span>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
function updatedata(data) {
    var request = $.ajax({
                        url: "data.php",
                        type: "POST",            
                        dataType: "html"
                    });
}

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
if(isset($_POST['data']) && !empty($_POST['data'])){
$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
 
PHP hulp

PHP hulp

27/04/2024 05:53:28
 
Erwin H

Erwin H

21/01/2014 08:21:37
Quote Anchor link
Altijd handig als een poster niet beschrijft wat er dan mis gaat... weer lekker zoeken naar de speld in een hooiberg.

Maar goed, laten we dan gewoon beginnen op regel 1: quotes!
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
onclick="updatedata("1")"

Dubbele quotes binnen dubbele quotes, dat kan natuurlijk niet goed gaan.
 
Jos Verstraeten

Jos Verstraeten

21/01/2014 08:37:04
Quote Anchor link
Oh hey Erwin,

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!
 
Erwin H

Erwin H

21/01/2014 09:02:14
Quote Anchor link
Dan naar het tweede, hoe denk je dat die 1 naar de server wordt verstuurd, via magische krachten? Je geeft helemaal niets mee aan de ajax call, dus zal er op de server ook nooit iets aankomen.

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


Je ajax call moet dus zoiets worden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
function updatedata(data) {
    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.
 
Jos Verstraeten

Jos Verstraeten

21/01/2014 18:08:51
Quote Anchor link
Heel erg bedankt het werkt nu :)
Gewijzigd op 21/01/2014 18:09:00 door Jos Verstraeten
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.