Skip to content
Snippets Groups Projects
Commit 85fc5278 authored by vautrin33u's avatar vautrin33u
Browse files

nouveauté

parent 202a40a6
No related branches found
No related tags found
1 merge request!1Master
...@@ -42,44 +42,55 @@ ...@@ -42,44 +42,55 @@
?> ?>
<div id='authentification'> <div id='header'>
<form method="POST" id='authentification'> <form method="POST" id='authentification'>
<?php <?php
if (isset($_SESSION['pseudo'])){ if (isset($_SESSION['pseudo'])){
$pseudonyme = ucfirst(strtolower($_SESSION['pseudo'])); $pseudonyme = ucfirst(strtolower($_SESSION['pseudo']));
echo "<p id='bienvenue'> Bienvenue ".$pseudonyme."</p>"; echo "<p id='bienvenue'> Bienvenue ".$pseudonyme."</p>";
echo "<input type='submit' name='deconnecter' value='Déconnexion'/>"; echo "<input type='submit' name='deconnecter' value='Déconnexion'/>";
}else{ }else{
echo "<input type='submit' name='connexion' value='Connexion'/>"; echo "<input type='submit' name='connexion' value='Connexion'/>";
echo "<input type='submit' name='inscription' value='Inscription'/>"; echo "<input type='submit' name='inscription' value='Inscription'/>";
} }
echo "<input type='submit' name='panier' id='panier' value='Votre panier'/>"; echo "<input type='submit' name='panier' id='panier' value='Votre panier'/>";
?> ?>
</form> </form>
<div id='recherche'>
<form method="post" id="form">
<div id='fil'>
Entrez votre recherche :
<input list='listeNoms' type="text" id="requete" onkeyup="afficherSuggestions()"/>
</br>
<input type='button' id='pour' name='pour' value='Avec' onclick='inclureIngredient()'/>
<input type='button' id='contre' name='contre' value='Sans' onclick='exclureIngredient()'/>
<input type='button' id='filtre' value='Recherche via filtres' onclick='rechercheFiltres()' disabled/>
<div id='tags'>
<ul id='tagIn'></ul>
<ul id='tagOut'></ul>
</div>
</div>
<div id='cat'>
Sélectionner :
<label for='categorie'></label><select name='categorie' id='categorie' onchange="optionsCategorie()" >
<option value='Aliment'></option>
<option value='Aliment'>Aliment</option>
</select>
<button type="button" onclick="remettreAZero()">Remise à zéro</button>
</div>
<br/>
<div id="infos"></div>
</form>
</div>
</div> </div>
<form method="post" id="form">
<fieldset id="fieldset">
Entrez votre recherche :
<input list='listeNoms' type="text" id="requete" onkeyup="afficherSuggestionsRecettes()"/>
Sélectionner :
<label for='categorie'></label><select name='categorie' id='categorie' onchange="optionsCategorie()" >
<option value='Aliment'></option>
<option value='Aliment'>Aliment</option>
</select>
<button type="button" onclick="remettreAZero()">Remise à zéro</button>
<br/>
</fieldset>
</form>
<div id="infos">
</div>
<div id="recettes"></div> <div id="recettes"></div>
......
...@@ -9,8 +9,11 @@ session_start(); ...@@ -9,8 +9,11 @@ session_start();
function queryDBB(string $str){ function queryDBB(string $str){
$mysqli= connect_to_db(); $mysqli= connect_to_db();
$res = $mysqli->query($str); $res = $mysqli->query($str);
if ($res != false){
$recettes = $res->fetch_all(MYSQLI_ASSOC); $recettes = $res->fetch_all(MYSQLI_ASSOC);
}else{
$recettes = false;
}
$mysqli->close(); $mysqli->close();
return json_encode($recettes); return json_encode($recettes);
} }
...@@ -28,7 +31,9 @@ function realiseInscription ($json){ ...@@ -28,7 +31,9 @@ function realiseInscription ($json){
$pseudo = mysqli_real_escape_string ($mysqli, $json['pseudo']); $pseudo = mysqli_real_escape_string ($mysqli, $json['pseudo']);
$password = mysqli_real_escape_string ($mysqli, $json['password']); $password = mysqli_real_escape_string ($mysqli, $json['password']);
$res = $mysqli->query("INSERT INTO utilisateurs(nom, prenom, sexe, email, pseudo, password) VALUES ('{$nom}', '{$prenom}', '{$sexe}', '{$email}', '{$pseudo}', '{$password}')"); $res = $mysqli->query("INSERT INTO utilisateurs(nom, prenom, sexe, email, pseudo, password)
VALUES ('{$nom}', '{$prenom}', '{$sexe}', '{$email}', '{$pseudo}', '{$password}')");
if ($res == true){ // si l'inscription fonctionne, préparation des éléments de sessions if ($res == true){ // si l'inscription fonctionne, préparation des éléments de sessions
$_SESSION['pseudo'] = $json['pseudo']; $_SESSION['pseudo'] = $json['pseudo'];
$resultat = $mysqli->query("SELECT * FROM utilisateurs WHERE pseudo LIKE '{$pseudo}' AND password = '{$password}'"); $resultat = $mysqli->query("SELECT * FROM utilisateurs WHERE pseudo LIKE '{$pseudo}' AND password = '{$password}'");
...@@ -52,8 +57,10 @@ function realiseConnexion ($json){ ...@@ -52,8 +57,10 @@ function realiseConnexion ($json){
$_SESSION['pseudo'] = $json['pseudo']; $_SESSION['pseudo'] = $json['pseudo'];
$resultat = $mysqli->query("SELECT * FROM utilisateurs WHERE pseudo LIKE '{$pseudo}' AND password = '{$password}'"); $resultat = $mysqli->query("SELECT * FROM utilisateurs WHERE pseudo LIKE '{$pseudo}' AND password = '{$password}'");
$resultat = $resultat->fetch_assoc(); $resultat = $resultat->fetch_assoc();
$_SESSION['id'] = $resultat['user_id']; $_SESSION['id'] = $resultat['user_id'];
$_SESSION['mdp'] = $resultat['password'];
$favs = $mysqli->query("SELECT p.recette_id FROM utilisateurs u, panier p WHERE u.user_id = p.user_id AND u.user_id = {$resultat['user_id']}"); $favs = $mysqli->query("SELECT p.recette_id FROM utilisateurs u, panier p WHERE u.user_id = p.user_id AND u.user_id = {$resultat['user_id']}");
...@@ -72,7 +79,19 @@ function realiseConnexion ($json){ ...@@ -72,7 +79,19 @@ function realiseConnexion ($json){
function chercheTitres (string $nom){ function chercheTitres (string $nom){
$requete = "SELECT titre FROM recettes WHERE titre LIKE '{$nom}%'"; $requete = "SELECT sous_nom FROM hierarchie WHERE super_nom LIKE '{$nom}%'";
$requete = "with recursive cte (sous_nom, super_nom) as (
SELECT sous_nom, super_nom
FROM hierarchie
WHERE super_nom LIKE '{$nom}%'
union all
SELECT h.sous_nom, h.super_nom
FROM hierarchie h
INNER JOIN cte
on h.super_nom = cte.sous_nom
)
select distinct sous_nom from cte;";
echo queryDBB($requete); echo queryDBB($requete);
} }
...@@ -87,7 +106,7 @@ function getCategorie (string $req){ ...@@ -87,7 +106,7 @@ function getCategorie (string $req){
/* /*
function getCategorie (string $req){ function getCategorie (string $req){
//$requete = "SELECT sous_nom FROM hierarchie WHERE super_nom = '{$req}'"; $requete = "SELECT sous_nom FROM hierarchie WHERE super_nom = '{$req}'";
$requete = "with recursive cte (sous_nom, super_nom) as ( $requete = "with recursive cte (sous_nom, super_nom) as (
...@@ -121,7 +140,7 @@ function grabRecettes (string $req){ ...@@ -121,7 +140,7 @@ function grabRecettes (string $req){
INNER JOIN cte on h.super_nom = cte.sous_nom INNER JOIN cte on h.super_nom = cte.sous_nom
) )
SELECT DISTINCT r.id, r.titre, r.ingredients, r.preparation, r.photo FROM cte c, recettes r, ingredientsderecettes ing SELECT DISTINCT r.id, r.titre, r.ingredients, r.preparation, r.photo FROM cte c, recettes r, ingredientsderecettes ing
WHERE c.sous_nom = ing.nomIngredient AND ing.idBoisson = r.id ;"; WHERE (c.sous_nom = ing.nomIngredient OR c.super_nom = ing.nomIngredient) AND ing.idBoisson = r.id ;";
echo queryDBB($requete); echo queryDBB($requete);
} }
...@@ -197,6 +216,55 @@ function removeFromCart ($req){ ...@@ -197,6 +216,55 @@ function removeFromCart ($req){
$_SESSION['panier'] = $temp; $_SESSION['panier'] = $temp;
} }
function searchFilters ($inclure, $exclure){
// recherche de la recette
// Création de la requête avec les ingrédients à inclure
$count = count($inclure);
$inc = '';
$i = 0;
foreach ($inclure as $item){
if ($i < $count -1){
$inc .= "super_nom LIKE '".$item."%' OR ";
}else{
$inc .= "super_nom LIKE '".$item."%' ";
}
$i ++;
}
// ajoute les ingrédients à retirer de la recherche
$count = count($exclure);
if ($count > 0){
$exc = 'AND ';
$i = 0;
foreach ($exclure as $item){
if ($i < $count -1){
$exc .= "super_nom NOT LIKE '".$item."%' OR ";
}else{
$exc .= "super_nom NOT LIKE '".$item."%' ";
}
$i ++;
}
$inc .= $exc;
}
// Corps de la requête récursive cherchant des recettes ayant certains ingrédients, en ignorant des recettes ayant d'autres ingrédients
$requete = "with recursive cte (sous_nom, super_nom) as (
SELECT sous_nom, super_nom
FROM hierarchie
WHERE ".$inc."
union all
SELECT h.sous_nom, h.super_nom
FROM hierarchie h
INNER JOIN cte on h.super_nom = cte.sous_nom
)
SELECT DISTINCT r.id, r.titre, r.ingredients, r.preparation, r.photo FROM cte c, recettes r, ingredientsderecettes ing
WHERE (c.sous_nom = ing.nomIngredient OR c.super_nom = ing.nomIngredient) AND ing.idBoisson = r.id ;";
echo queryDBB($requete);
}
// Gestion des requetes json // Gestion des requetes json
...@@ -248,6 +316,11 @@ if (isset($decoded['panier'])){ ...@@ -248,6 +316,11 @@ if (isset($decoded['panier'])){
} }
} }
if (isset($decoded['filtre'])){
searchFilters ($decoded['avec'], $decoded['sans']);
}
?> ?>
\ No newline at end of file
<?php // Gestion de l'inscription <?php // Gestion de l'inscription
session_start(); // début session session_start(); // début session
include "configuration.php";
?> ?>
...@@ -16,7 +18,7 @@ ...@@ -16,7 +18,7 @@
<body> <body>
<?php // Gestion de l'inscription <?php // Gestion de l'inscription
$mysqli=mysqli_connect('127.0.0.1', 'root', '') or die("Erreur de connexion"); $mysqli=install_bd();
if (!$mysqli) { if (!$mysqli) {
die("Connection failed: " . mysqli_connect_error()); die("Connection failed: " . mysqli_connect_error());
} }
......
<?php // Gestion de l'inscription <?php // Gestion de l'inscription
session_start(); // début session session_start(); // début session
include "configuration.php";
?> ?>
...@@ -15,10 +17,8 @@ ...@@ -15,10 +17,8 @@
<body> <body>
<?php // Gestion de l'inscription <?php // Gestion de l'inscription
$mysqli=mysqli_connect('127.0.0.1', 'root', '') or die("Erreur de connexion"); $mysqli=install_bd();
if (!$mysqli) {
die("Connection failed: " . mysqli_connect_error());
}
$describe = $mysqli->query('describe Boissons.utilisateurs;'); $describe = $mysqli->query('describe Boissons.utilisateurs;');
if ($describe->num_rows > 0) { if ($describe->num_rows > 0) {
$form = '<h1> Inscription </h1>'; $form = '<h1> Inscription </h1>';
......
...@@ -2,6 +2,8 @@ ...@@ -2,6 +2,8 @@
function ajoutFormulaire(conteneur, parent, recette){ function ajoutFormulaire(conteneur, parent, recette){
let formRec = document.createElement('form'); let formRec = document.createElement('form');
let field = document.createElement('fieldset'); let field = document.createElement('fieldset');
field.classList.add('favoris');
var cancel = document.createElement('button'); var cancel = document.createElement('button');
...@@ -52,7 +54,8 @@ function afficheRecettes(recette){ ...@@ -52,7 +54,8 @@ function afficheRecettes(recette){
// parcours de toutes les recettes contenu dans l'objet // parcours de toutes les recettes contenu dans l'objet
for (var i = 0; i<recette.length; i++){ for (var i = 0; i<recette.length; i++){
// Création des éléments titre / paragraphe / liste // Création des éléments titre / paragraphe / liste
let conteneur = document.createElement('span'); // Contient les éléments html d'une recette let conteneur = document.createElement('div'); // Contient les éléments html d'une recette
conteneur.classList.add('recetteSolo');
let image = document.createElement('img'); // image let image = document.createElement('img'); // image
let titre = document.createElement('h2'); // titre de niveau 2 let titre = document.createElement('h2'); // titre de niveau 2
let paragraph = document.createElement('p'); // paragraphe contenant la liste et description let paragraph = document.createElement('p'); // paragraphe contenant la liste et description
...@@ -63,6 +66,8 @@ function afficheRecettes(recette){ ...@@ -63,6 +66,8 @@ function afficheRecettes(recette){
// Récupération du contenu // Récupération du contenu
titre.textContent = recette[i].titre; titre.textContent = recette[i].titre;
paragraph.textContent = recette[i].preparation; paragraph.textContent = recette[i].preparation;
paragraph.classList.add('preparation');
let ingredients = recette[i].ingredients.split("|"); let ingredients = recette[i].ingredients.split("|");
for (var j = 0; j<ingredients.length; j++){ for (var j = 0; j<ingredients.length; j++){
liste.innerHTML += "<li>"+ingredients[j]+"</li>"; liste.innerHTML += "<li>"+ingredients[j]+"</li>";
......
<?php <?php
session_start(); session_start();
/*
echo '<pre>'; echo '<pre>';
var_dump($_SESSION['panier']); var_dump($_SESSION['panier']);
$temp = $_SESSION['panier']; $temp = $_SESSION['panier'];
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
} }
echo $requete; echo $requete;
echo '</pre>'; echo '</pre>';
*/
?> ?>
...@@ -29,7 +30,7 @@ ...@@ -29,7 +30,7 @@
<title>Votre panier</title> <title>Votre panier</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="panier.js"> </script> <script type="text/javascript" src="panier.js"> </script>
<link href="recettes.css" rel="stylesheet">
</head> </head>
......
#recherche{
display: flex;
justify-content: space-evenly;
width: 50%;
min-width: none;
min-height: 30px;
}
#panier{
top: 0;
right :0;
position: fixed;
}
#header{
display: flex;
position: fixed;
top:0px;
width: 100%;
min-width: 600px;
height: 100px;
background-color: #c483a6;
}
#recettes{
padding-top: 5%;
width : 90%;
min-width: 400px;
margin: auto;
}
img {
max-width: 400px;
height: auto;
width: auto\9;
}
body{ body{
background-color: #c483a6; background-color: #c483a6;
color: white; color: white;
} }
h2{ h2{
...@@ -13,47 +53,85 @@ img{ ...@@ -13,47 +53,85 @@ img{
display:block; display:block;
margin-left:auto; margin-left:auto;
margin-right:auto; margin-right:auto;
border: 2px solid #a9d5e3; border: 2px solid #5e3657;
} }
ul{ ul{
text-align: center; text-align: center;
} }
span{ @keyframes recette {
border: 2px solid #a9d5e3; from {background-color: #c483a6;}
to {background-color: #743d5a;}
from {color: #c483a6;}
to {color: #ffffff;}
}
.recetteSolo {
background-color: #743d5a;
animation-name: recette;
animation-duration: 0.4s;
border: 2px solid #422852;
}
/* Correspont au texte + liste de chaque recette */
.preparation{
padding: 50px;
}
button {
background-color:white;
border-radius:12px;
border: 2px solid black;
transition-duration:0.4s;
} }
input{ input{
background-color:white; background-color:white;
font-size:20px; font-size:16px;
border-radius:12px; border-radius:12px;
border: 2px solid black; border: 2px solid black;
transition-duration:0.4s; transition-duration:0.4s;
width:150px;
} }
#requete{ #requete{
width:400px; width: 20%;
min-width:200px;
} }
input:hover{ input:hover, button:enabled:hover{
background-color:black; background-color:black;
color:white; color:white;
} }
input + input{ input + input{
margin-left:10px; margin-right: 2%;
margin-left: 2%;
} }
#panier{ .with {
position: fixed; padding-left: 2px;
margin-right:2em; padding-right: 2px;
right:0;
margin-left: 2px;
margin-right : 2px;
background-color: darkgreen;
border-radius:12px;
border: 2px solid black;
transition-duration:0.4s;
} }
#panier{ .without {
position: fixed; padding-left: 2px;
margin-right:2em; padding-right: 2px;
right:0; margin-left: 2px;
margin-right : 2px;
background-color: darkred;
border-radius:12px;
border: 2px solid black;
} }
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
function ajoutFormulaire(parent, recette){ function ajoutFormulaire(parent, recette){
let formRec = document.createElement('form'); let formRec = document.createElement('form');
let field = document.createElement('fieldset'); let field = document.createElement('fieldset');
field.classList.add('favoris');
var add = document.createElement('button'); var add = document.createElement('button');
var cancel = document.createElement('button'); var cancel = document.createElement('button');
...@@ -95,7 +96,8 @@ function afficheRecettes(recette){ ...@@ -95,7 +96,8 @@ function afficheRecettes(recette){
// Création des éléments titre / paragraphe / liste // Création des éléments titre / paragraphe / liste
let conteneur = document.createElement('span'); // Contient les éléments html d'une recette let conteneur = document.createElement('div'); // Contient les éléments html d'une recette
conteneur.classList.add('recetteSolo');
conteneur.id = recette[i].id; conteneur.id = recette[i].id;
let titre = document.createElement('h2'); // titre de niveau 2 let titre = document.createElement('h2'); // titre de niveau 2
let paragraph = document.createElement('p'); // paragraphe contenant la liste et description let paragraph = document.createElement('p'); // paragraphe contenant la liste et description
...@@ -106,6 +108,8 @@ function afficheRecettes(recette){ ...@@ -106,6 +108,8 @@ function afficheRecettes(recette){
// Récupération du contenu // Récupération du contenu
titre.textContent = recette[i].titre; titre.textContent = recette[i].titre;
paragraph.textContent = recette[i].preparation; paragraph.textContent = recette[i].preparation;
paragraph.classList.add('preparation');
let ingredients = recette[i].ingredients.split("|"); let ingredients = recette[i].ingredients.split("|");
for (var j = 0; j<ingredients.length; j++){ for (var j = 0; j<ingredients.length; j++){
liste.innerHTML += "<li>"+ingredients[j]+"</li>"; liste.innerHTML += "<li>"+ingredients[j]+"</li>";
......
var recherche = {
filtre : 'filtre',
avec: [],
sans: []
};
/**
* affiche les suggestions de complétions d'ingrédients
* @param {} res
*/
function genereSuggestions(res){ function genereSuggestions(res){
// Création dataliste // Création dataliste
var list = document.createElement('datalist'); var list = document.createElement('datalist');
...@@ -8,37 +19,36 @@ function genereSuggestions(res){ ...@@ -8,37 +19,36 @@ function genereSuggestions(res){
console.log(list); console.log(list);
// remplissage de la liste // remplissage de la liste
for (const nom of res){ if (res.length > 0){
var opt = document.createElement("option"); for (const objet of res){
temp = JSON.stringify(nom["titre"]) var opt = document.createElement("option");
opt.value = temp.replaceAll('"', ''); opt.textContent = objet.sous_nom;
list.appendChild(opt); opt.value = objet.sous_nom;
console.log(opt); list.appendChild(opt);
}
// Ajout de la liste à la textbox
textbox.appendChild(list);
} }
// Ajout de la liste à la textbox
textbox.appendChild(list);
} }
/** /**
* Affiche une liste de cocktails * Affiche une liste d'ingrédients
*/ */
function afficherSuggestionsRecettes(){ function afficherSuggestions(){
// Empeche le rechargement de la page quand on valide // Empeche le rechargement de la page quand on valide
document.getElementById("form").addEventListener("submit", function (e) { document.getElementById("form").addEventListener("submit", function (e) {
e.preventDefault(); e.preventDefault();
return false; return false;
}); });
// Récupère la position à laquelle on veut afficher des informations
var zone = document.getElementById("infos");
zone.innerHTML = "";
// Création d'un objet contenant la requêtes // Création d'un objet contenant la requêtes
var input = { var input = {
requete: document.getElementById("requete").value requete: document.getElementById("requete").value
}; };
console.log(input);
// Demande au serveur php (donc à la db) les noms de // Demande au serveur php (donc à la db) les noms de
const xhr = new XMLHttpRequest(); const xhr = new XMLHttpRequest();
xhr.open("POST", "Service.php", true); xhr.open("POST", "Service.php", true);
...@@ -50,10 +60,116 @@ function genereSuggestions(res){ ...@@ -50,10 +60,116 @@ function genereSuggestions(res){
// Si le retour n'est pas vide, on affiche les titres // Si le retour n'est pas vide, on affiche les titres
if (this.response != null){ if (this.response != null){
var resultat = JSON.parse(xhr.response); var resultat = JSON.parse(xhr.response);
//console.log(resultat); console.log(resultat);
genereSuggestions(resultat); genereSuggestions(resultat);
} }
} }
} }
xhr.send(JSON.stringify(input)); xhr.send(JSON.stringify(input));
} }
/**
* Inclure des ingrédients dans la recherche
*/
function inclureIngredient(){
var barre = document.getElementById('requete');
var filtre = document.getElementById('filtre');
if (!recherche.avec.includes(barre.value) && barre.value != ''){
recherche.avec.push(barre.value);
if (recherche.avec.includes(barre.value)){
let i = recherche.sans.indexOf(barre.value);
recherche.sans = recherche.avec.splice(0, i);
}
}
filtre.disabled = !(recherche.avec.length > 0 || recherche.sans.length > 0);
updateTags();
}
/**
* Exclure des ingrédients de la recherche
*/
function exclureIngredient(){
var barre = document.getElementById('requete');
var filtre = document.getElementById('filtre');
if (!recherche.sans.includes(barre.value) && barre.value != ''){
recherche.sans.push(barre.value);
if (recherche.avec.includes(barre.value)){
let i = recherche.avec.indexOf(barre.value);
recherche.avec = recherche.avec.splice(0, i);
}
}
filtre.disabled = !(recherche.avec.length > 0 || recherche.sans.length > 0);
updateTags();
}
function updateTags(){
// Ajout des tags de recherches
// Ajout des tags de recherches
let tags = document.getElementById('tagIn');
tags.innerHTML = '';
if (recherche.avec.length > 0){
let tag = document.createElement('ul');
tags.append(tag);
let cmpt = 1;
recherche.avec.forEach(element => {
let puce = document.createElement('il');
puce.classList.add('with');
puce.textContent = element;
tag.append(puce);
puce.addEventListener('click', () =>{
recherche.avec = recherche.avec.splice(1, cmpt);
puce.parentNode.removeChild(puce);
})
cmpt++;
});
}
let tagOut = document.getElementById('tagOut');
tagOut.innerHTML = '';
if (recherche.sans.length > 0){
let tag = document.createElement('ul');
tagOut.append(tag);
let cmpt = 1;
recherche.sans.forEach(element => {
let puce = document.createElement('il');
puce.classList.add('without');
puce.textContent = element;
tag.append(puce);
puce.addEventListener('click', () =>{
recherche.sans = recherche.sans.splice(1, cmpt);
puce.parentNode.removeChild(puce);
})
cmpt++;
});
}
}
/**
* Effectue recherche a partir des filtres
*/
function rechercheFiltres(){
const xhr = new XMLHttpRequest();
xhr.open("POST", "Service.php", true);
xhr.setRequestHeader("Content-Type", "application/json ; charset=UTF-8");
console.log(recherche);
// Vérification des résultats
xhr.onreadystatechange = function(){
if (xhr.readyState === 4 && xhr.status === 200){
// Si le retour n'est pas vide, on affiche les titres
if (this.response != null){
var resultat = JSON.parse(xhr.response);
console.log(resultat);
}
}
}
xhr.send(JSON.stringify(recherche));
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment