par
sadly » 15 oct. 2020, 15:20
Bonjour,
Je viens vers vous en dernier recours..
brands=%5B%22Bell%22%2C%22arai%22%5D
j'ai créer un filtre pour faire une sélection de marque sur mon site, des input de type checkbox qui au clic appellent une fonction qui envoi une requête ajax :
init_brands(val, categorie){
if(this.brands.indexOf(val) !== -1){
this.brands.pop(val)
console.log(this.brands)
}else{
this.brands.push(val)
console.log(this.brands)
}
$.post({
url : "./menu/"+ categorie,
data: { "brands" : this.brands }
})
}
sur un de mes controller... problème est que quand j'envoi mon tableau au model la requête me renvoi que la dernière valeur :
brands%5B%5D=Bell&brands%5B%5D=arai
j'ai aussi essayé :
$.post({
url : "./menu/"+ categorie,
data: { "brands" : JSON.stringify(this.brands)}
})
mais la requete se transforme en :
brands=%5B%22Bell%22%2C%22arai%22%5D
le model ressemble à ça :
public function return_articles_by_categories_and_brands($categorie,$brands){
//var_dump($brands);
$db = ModelArticles::connect_db_articles();
//$categorie !!!! change that no secure
$sql = "SELECT * FROM articles WHERE categorie_article=? AND marque IN (";
$params = [];
foreach($brands as $brand){
$params[] = '?';
$binds[] = $brand;
}
$req = $db->prepare($sql . join(',', $params) . ')');
$req->bindParam(1, $categorie);
$i = 1;
foreach($binds as $bind){
$req->bindParam(++$i, $bind);
}
$req->execute();
var_dump($req->fetchAll());die();
}
comment puis-je faire ?