PHP / Javascript logging

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Ad Vertentie

Ad Vertentie

23/01/2018 18:01:05
Quote Anchor link
Mijn kennis van Javascript / Jquery is momenteel helaas te beperkt.
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?
 
PHP hulp

PHP hulp

03/12/2021 15:15:53
 
Nick Vledder

Nick Vledder

23/01/2018 20:10:39
Quote Anchor link
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.
 
Ad Vertentie

Ad Vertentie

23/01/2018 20:21:18
Quote Anchor link
Ok, dat verklaard dat het niet werkt.
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 :(
 
Nick Vledder

Nick Vledder

23/01/2018 20:23:03
Quote Anchor link
Met name de jQuery AJAX documentatie is uitgebreid en (naar mijn nederige mening) zeer toegankelijk.
 
Ad Vertentie

Ad Vertentie

23/01/2018 21:08:23
Quote Anchor link
Alles is makkelijk als je weet hoe het werkt..


Toevoeging op 23/01/2018 21:13:24:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>



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.
Gewijzigd op 23/01/2018 22:01:32 door - Ariën -
 
Nick Vledder

Nick Vledder

23/01/2018 21:25:48
Quote Anchor link
De userid is neem ik aan bekend op de server, dus niet meezenden met AJAX.
 
Ad Vertentie

Ad Vertentie

23/01/2018 21:27:27
Quote Anchor link
$userid en $imagenumber had ik graag in de log gehad.
Hoe bouw ik de rest op ? (hetgeen tussen de ?? staat) ?
 
- Ariën -
Beheerder

- Ariën -

23/01/2018 21:43:59
Quote Anchor link
Een voorbeeldje:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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 );
  });


Zie ook: http://api.jquery.com/jquery.ajax/ (onderaan)
 
Nick Vledder

Nick Vledder

23/01/2018 21:45:19
Quote Anchor link
Deleted.
Gewijzigd op 23/01/2018 22:00:51 door Nick Vledder
 
- Ariën -
Beheerder

- Ariën -

23/01/2018 21:50:14
Quote Anchor link
Of je GET of POST moet gebruiken, ligt aan je script die je opvraagt.
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 -
 
Ad Vertentie

Ad Vertentie

23/01/2018 21:52:58
Quote Anchor link
Tot zover is het helder..
data: { name: "John", location: "Boston" }

Hoe krijg ik voor John en Boston een variabele meesturen?

Zoals:
data: { name: $uid, imgid: $imgid }
 
- Ariën -
Beheerder

- Ariën -

23/01/2018 21:55:30
Quote Anchor link
Geen $ gebruiken, en defineren met een var.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
var uid = 42;
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 -
 
Nick Vledder

Nick Vledder

23/01/2018 21:59:50
Quote Anchor link
EDIT Ariën postte gelijktijdig, maakt deze post overbodig...
 
Ad Vertentie

Ad Vertentie

23/01/2018 22:02:25
Quote Anchor link
Nog even en het werkt ;)

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
 
- Ariën -
Beheerder

- Ariën -

23/01/2018 22:12:05
Quote Anchor link
Komen die uit php? Dan kan je met PHP die JavaScript var's gewoon vullen met die waardes.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$uid
= $row['userID']; //geef aan $uidde juiste waarde mee. In dit geval is het een voorbeeld.
$imgid = $row['imageID']; //geef aan $imgid de juiste waarde mee. In dit geval is het een voorbeeld.
?>


<script>
var uid = <?php echo $uid; ?>;
var imgid =  <?php echo imgid; ?>;
</script>

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

Ad Vertentie

23/01/2018 22:13:18
Quote Anchor link
Wauw! :)
Ik maar denken dat je geen PHP daarin zou mogen gebruiken.
Thx! Nu gaat het goedkomen :)
 
- Ariën -
Beheerder

- Ariën -

23/01/2018 22:22:42
Quote Anchor link
Waarom zou dat niet mogen? PHP is het eerste wat er uitgevoerd wordt bij een request naar een PHP-ondersteunende webserver. Die serveert de output naar de client, en die voert de JavaScript code dan uit en heeft geen enkele weet van PHP nodig.

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

Ad Vertentie

01/02/2018 05:24:59
Quote Anchor link
Na e.e.a. te hebben getest, kwam het volgende probleem boven, unieke waardes meegeven aan een div.

Ik had er het volgende op bedacht, het werk alleen niet.
Wat doe ik verkeerd?

<script>
var userid =
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? 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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<? // molog_script.php (dit bestand heeft 777 rechten).
$uid=$_GET['uid'];
$img=$_GET['img'];

$fp = fopen('testbestand.txt', 'w+');
fwrite($fp, $uid);
fwrite($fp, $img);
fclose($fp);


?>
Gewijzigd op 01/02/2018 05:30:06 door Ad Vertentie
 
- Ariën -
Beheerder

- Ariën -

01/02/2018 07:28:14
Quote Anchor link
Kan je code-tags toevoegen?

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 -
 
Thomas van den Heuvel

Thomas van den Heuvel

01/02/2018 16:58:08
Quote Anchor link
$_SESSION['uid'] is toch gewoon al beschikbaar in dat script als je daar session_start() in zet? :/
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

Ad Vertentie

01/02/2018 18:02:33
Quote Anchor link
Ad Vertentie op 01/02/2018 05:24:59:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<? // molog_script.php (dit bestand heeft 777 rechten).
$uid=$_GET['uid'];
$img=$_GET['img'];

$fp = fopen('testbestand.txt', 'w+');
fwrite($fp, $uid);
fwrite($fp, $img);
fclose($fp);


?>


Gewijzigd op 01/02/2018 18:07:49 door Ad Vertentie
 

Pagina: 1 2 volgende »



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.