PHP / Javascript logging
Wat ik zoek is een logging oplossing welke wordt aangeroepen middels een mouseover.
De loggingfunctie is in PHP geschreven, en bestaat uit 5 variabelen:
logging(var1,var2,var3,var4,var5).
Echter zodra ik deze logging in de mouseover aanroep, loopt hij alle getoonde records in de log.
Wat ik nodig heb is een Javascript oplossing waarbij bij een mouseover, de 5 variabelen naar een MySQL database worden geschreven.
Heeft iemand een voorbeeld / idee hoe ik dit kan maken?
Dat roept om AJAX. Dus, je koppelt 'mouseover'-event aan een functie die asynchroon een url aanroept. Dat zal dus niet rechtstreeks de logging(var1,etc.) functie zijn, maar een url. Naast de url kun je GET of POST waarden meegeven.
Ken je toevallig een tutorial waar ik iets meer een idee krijg hoe ik dat kan maken?
AJAX / Javascript / Jquery is not my cup of thea :(
Met name de jQuery AJAX documentatie is uitgebreid en (naar mijn nederige mening) zeer toegankelijk.
Toevoeging op 23/01/2018 21:13:24:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#div0").mouseover(function(){
$.ajax({ ?? });
});
});
</script>
</head>
<body>
<div id="div0">Hier de mouseover $userid </div>
</body>
</html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#div0").mouseover(function(){
$.ajax({ ?? });
});
});
</script>
</head>
<body>
<div id="div0">Hier de mouseover $userid </div>
</body>
</html>
Hoe kan ik na deze mouseover loggegevens gaan loggen waaronder de $userid ?
Edit:
Ik heb code-tags geplaatst. Gelieve dit in het vervolg zelf toe te voegen aan je bericht.
Zie ook: Veel gestelde vragen: Welke UBB-codes kan ik gebruiken.
Zie ook: Veel gestelde vragen: Welke UBB-codes kan ik gebruiken.
Gewijzigd op 23/01/2018 22:01:32 door - Ariën -
De userid is neem ik aan bekend op de server, dus niet meezenden met AJAX.
Hoe bouw ik de rest op ? (hetgeen tussen de ?? staat) ?
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
$.ajax({
method: "POST",
url: "script.php",
data: { name: "John", location: "Boston" }
})
.done(function( msg ) {
alert( "Data Saved: " + msg );
});
method: "POST",
url: "script.php",
data: { name: "John", location: "Boston" }
})
.done(function( msg ) {
alert( "Data Saved: " + msg );
});
Zie ook: http://api.jquery.com/jquery.ajax/ (onderaan)
Gewijzigd op 23/01/2018 22:00:51 door Nick Vledder
Voor AJAX geef ik vaak de voorkeur aan GET als het minimaal aantal waarden zijn. Als het een heel formulier is, kies ik voor POST.
Verder kan je in het .done event bepalen wat er moet gebeuren als de AJAX-request gelukt is. In dit voorbeeld is het een alert die er wordt getoond. Maar je kan ook andere jQuery-bewerkingen uitvoeren, door HTML-elementen aan te passen.
Gewijzigd op 23/01/2018 21:51:17 door - Ariën -
data: { name: "John", location: "Boston" }
Hoe krijg ik voor John en Boston een variabele meesturen?
Zoals:
data: { name: $uid, imgid: $imgid }
Code (php)
1
2
3
4
5
2
3
4
5
var uid = 42;
var imgid = 2;
// En verderop in je $.ajax() functie:
data: { name: uid, imgid: imgid }
var imgid = 2;
// En verderop in je $.ajax() functie:
data: { name: uid, imgid: imgid }
Zie ook: https://www.w3schools.com/js/js_variables.asp
Gewijzigd op 23/01/2018 21:57:12 door - Ariën -
EDIT Ariën postte gelijktijdig, maakt deze post overbodig...
De bedoeling is dat het script de gegevens van de mouseover doet loggen.
In dit geval is het de url (of id) van de foto, alsook de userid.
Hoe kan ik deze meesturen tijdens deze mouseover?
Anders gezegd.. de 42 en de 2 moeten dynamisch worden meegegeven aan script.php
Gewijzigd op 23/01/2018 22:08:43 door Ad Vertentie
Code (php)
Utieraard kan je die variabelen met die data ook direct aanroepen in je script-blok. Daar hoef je geen variabelen voor te kopiëren, maar voor de duidelijkheid heb ik dit wel even gedaan.
Gewijzigd op 23/01/2018 22:13:02 door - Ariën -
Ik maar denken dat je geen PHP daarin zou mogen gebruiken.
Thx! Nu gaat het goedkomen :)
Je kan die PHP-variabelen ook direct in de $.ajax() fucntie bij de 'data' plaatsen. maar vaak staat die code weer in een .js bestand, en dan kan je weer geen PHP daarin uitvoeren. Dus maken we die maar in het HTML-document aan waar PHP wel weer werkt.
Gewijzigd op 23/01/2018 22:23:52 door - Ariën -
Ik had er het volgende op bedacht, het werk alleen niet.
Wat doe ik verkeerd?
<script>
var userid = ;
var titles = $(this).attr('title');
$(document).ready(function(){
$('#div0').on('mouseover', 'td', function(){
$.ajax({
method: "GET",
url: "molog_script.php",
data: { uid: userid, img: titles }
})
});
});
</script>
Code (php)
Gewijzigd op 01/02/2018 05:30:06 door Ad Vertentie
Wat zegt je JavaScript debugger? En je Developer-tools van je browser, en met name je Netwerk-tab. jQuery ingeladen? Netjes jQuery gestart met .ready aan het begin?
Gewijzigd op 01/02/2018 07:34:20 door - Ariën -
Waarom zou je dat via zo'n U-bocht constructie doorgeven?
Enne, wat gebeurt er als er verschillende processen tegelijkertijd in dat bestand schrijven? Dan gaat er informatie verloren lijkt mij, tenzij je zorgt voor exclusieve locking tijdens het schrijven.
Ad Vertentie op 01/02/2018 05:24:59:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<script>
var userid = <? echo $_SESSION['uid']; ?>;
var titles = $(this).attr('title');
$(document).ready(function(){
$('#div0').on('mouseover', 'td', function(){
$.ajax({
method: "GET",
url: "molog_script.php",
data: { uid: userid, img: titles }
})
});
});
</script>
var userid = <? echo $_SESSION['uid']; ?>;
var titles = $(this).attr('title');
$(document).ready(function(){
$('#div0').on('mouseover', 'td', function(){
$.ajax({
method: "GET",
url: "molog_script.php",
data: { uid: userid, img: titles }
})
});
});
</script>
Code (php)
Gewijzigd op 01/02/2018 18:07:49 door Ad Vertentie