Hallo Community,
ich versuche in meinem Frontend Modul unter Contao 3.5.15 vergeblich Daten per Ajax an die Datenbank zu senden. Folgenden Code habe ich auf Grundlage von http://www.cool-it.at/blog/Juni-2012...nem-CMS-System geschrieben.
Wenn ich die Seite in der das Modul eingebunden ist direkt aufrufe, schreibt er einen Eintrag in die Datenbank aber natürlich ohne die POST Daten. Der Teil der die Daten in die Datenbank schreiben soll, schein also zu funktionieren.
Irgendwas muss bei der Übergabe per Ajax schief laufen. Anbei auch ein Screenshot der Developer Tools.
Wäre schön wenn jemand helfen könnte, ansonsten dreh ich noch durch
PHP-Code:
<?php
if ($this->Input->get('isAjax') == '1') {
$tstamp = time();
$pid = intval($_POST['currentvideo']);
$currenttime = intval($_POST['current']);
$duration = intval($_POST['duration']);
$objResult = \Database::getInstance()->prepare("SELECT * FROM tl_tpStatistic WHERE pid=? ")->execute($pid);
if ($objResult->numRows < 1) {
$insert = array(
'tstamp' => $tstamp,
'pid' => $pid,
'currenttime' => $currenttime,
'duration' => $duration,
);
\Database::getInstance()->prepare("INSERT INTO tl_tpStatistic %s")->set($insert)->execute();
} else {
$update = array(
'tstamp' => $tstamp,
'pid' => $pid,
'currenttime' => $currenttime,
'duration' => $duration,
);
\Database::getInstance()->prepare("UPDATE tl_tpStatistic %s WHERE pid=?")->set($update)->execute($pid);
}
exit; // IMPORTANT!
}
?>
<script>
(function($) {
$(document).ready(function() {
var baseURL = window.location.href;
setInterval(function(){
$.ajax({
type: 'POST',
dataType: 'json',
url: baseURL + '?isAjax=1',
data: {
currentvideo : 3,
current : 50,
duration : 300
},
success:function(data){
console.log(data); //ist undefined
console.log( 'success' );
},
error: function(xhr, status, error) {
console.log( 'failure' );
},
});
}, 1000);
});
})(jQuery);
</script>
Bildschirmfoto 2016-08-23 um 15.03.37.png
Lesezeichen