Hallo Experten,
ich habe ein für mich sehr kniffliges Problem. Ich möchte per Ajax einen Parameter an eine PHP Funktion übergeben, der für eine MySQL Abfrage benötigt wird:
custom.js:
Code
$(document).ready(function(){
$.ajax({
type: "POST",
data: {
class: 'TicketRepository',
method: 'ladeChartVerlaufOffen4',
fb: document.getElementsByClassName('auswahlfachbereich')[0].value --> dieser Parameter soll in der Abfrage ankommen
},
url: "../../src/ticket/HandlerChartVerlaufOffen4.php",
dataType: "json",
success: function(data) {
var x = [];
var y = [];
var z = [];
for(var i in data) {
x.push(data[i].tag);
y.push(data[i].anzahl);
z.push(parseInt(data[i].anzahl));
}
const s = (z.reduce((prev, curr) => prev + curr, 0))/z.length;
const sum = s.toFixed(0);
var chartdata = {
labels: x,
datasets : [
{
label: 'Durchschnitt letzte 30 Tage ' + '(' + sum + ')',
backgroundColor: '#ed9a56',
borderColor: 'rgba(200, 200, 200, 0.75)',
hoverBackgroundColor: '#4d82b8',
hoverBorderColor: 'rgba(200, 200, 200, 1)',
data: y
}
]
};
var ctx = $("#chartVerlaufOffen4");
var barGraph = new Chart(ctx, {
type: 'bar',
data: chartdata,
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero: true
}
}]
}
}
});
},
error: function(data) {
console.log(data);
}
});
});
Alles anzeigen
HandlerChartVerlaufOffen4.php:
PHP
<?php
namespace App\Ticket;
require_once 'TicketRepository.php';
require_once 'ModelChartVerlaufOffen4.php';
use PDO;
if(isset( $_POST['class']) && isset( $_POST['method'])) {
$myTicketRepository = new TicketRepository($pdo = new PDO('mysql:dbname=db; host=1234', 'a', 'in'));
$result = $myTicketRepository->ladeChartVerlaufOffen4();
echo json_encode($result);
}
$pdo = null;
?>
Alles anzeigen
TicketRepository.php:
Code
function ladeChartVerlaufOffen4()
{
$statement = $this->pdo->prepare("SELECT *
FROM (SELECT id_offen_gruppen AS ids, DATE_FORMAT(o.datum, '%d.%m') AS tag, SUM(o.anzahl) AS anzahl
FROM crmdb_copy.offen_gruppen o
WHERE o.status IN(?, ?)
AND YEAR(o.datum) =?
AND o.gruppen =? --> hier soll dr Parameter ankommen
GROUP BY DATE_FORMAT(o.datum, '%d.%m')
ORDER BY o.datum DESC LIMIT 30) sub
ORDER BY ids");
$statement->execute(array(0, 1, date('Y')));
$statement->setFetchMode(PDO::FETCH_CLASS, "App\\Ticket\\ModelChartVerlaufOffen4");
$data = $statement->fetchAll(PDO::FETCH_CLASS, "App\\Ticket\\ModelChartVerlaufOffen4");
return $data;
}
Alles anzeigen
also: fb: document.getElementsByClassName('auswahlfachbereich')[0].value aus custom.js soll in AND o.gruppen = ? in TicketRepository.php ankommen
wer kann mir helfen?