Bonjour a tous :
Mon but est de transférer une info js en php !
ps:j'utilise fullcalendar
Plus clairement :
"
dateClick: function(info) {
console.log(info.dateStr)
}
"
Ici je récupère une date grâce a fullcalendar quand je clique sur un jour, je souhaite que cette date passe en php pour la récupérer ici :
"
require_once './bdd/db.php';
$rep = //valeur js récupérer
$req=$pdo->prepare('SELECT * FROM events WHERE date_reservation = ?');
$req->execute($rep);
$events = $req->fetchAll();
"
Pouvez vous m'aider ?
Hello, alors tu peux utiliser la session array_push($_SESSION['names'],$name);
et récupérer la valeur en JS
Une autre solution serait de stocker tes données PHP dans un data-attribute dans un input type hidden, mais comme c'est un array il faut d'abord encoder le tableau pour que ça devienne une string, et ensuite le json parse va transformer la string en objet json
// PHP
require_once './bdd/db.php';
$rep = //valeur js récupérer
$req=$pdo->prepare('SELECT * FROM events WHERE date_reservation = ?');
$req->execute($rep);
$events = $req->fetchAll();
$jsonEvents = json_encode($events);
// HTML
<input id="reservation" type="hidden" data-reservation="<? $jsonEvents; ?>" >
// JS
const events = JSON.parse(document.getElementById('reservation').dataset.reservation)
Tu peut aussi stocker tes données PHP en storage local
Maintenant une solution "propre":
Tu exportes ta requete dans un controller php:
PHP Controllers/Api/DateReservation.php
require_once './bdd/db.php';
$rep = //valeur js récupérer
$req=$pdo->prepare('SELECT * FROM events WHERE date_reservation = ?');
$req->execute($rep);
$events = $req->fetchAll();
return $events;
Ensuite tu config ton routeur pour pointer vers ce controller: http://localhost:8000/api/date_reservation -> Controllers/Api/DateReservation.php
par exemple
Et coté JS tu fait une requête pour taper l'API (avec axios c'est simple):
Avec NPM
npm install axios
ou alors en CDN
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
JS
async function getDateReservation() {
try {
const data = await axios.get('/api/date_reservation');
// Donées PHP dans la variable "data"
console.log(data);
//Tu fait ton tatouin ici
} catch (error) {
console.error(error);
}
}
getDateReservation();