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 ?

1 réponse


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();