11486 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

j'ai fais un CRUD php avec des requetes AJAX ,
et l'a j'epercevoir qu'il faut mettre une recherche avec des requetes parametrer
voici mon codesi quelquMun peut m'aider :

//controleur 
	function lister($res){
		global $tabRes;
		$tabRes['action']="lister";
		$requete="SELECT * FROM films WHERE Categorie=?";
		try{
			 $unModele=new filmsModele($requete,array($res));
			 $stmt=$unModele->executer();
			 $tabRes['listeFilms']=array();
			 while($ligne=$stmt->fetch(PDO::FETCH_OBJ)){
			    $tabRes['listeFilms'][]=$ligne;
			}
		}catch(Exception $e){
		}finally{
			unset($unModele);
		}
	}

$action=$_POST['action'];
	$res = ' ';
	switch($action){
		case "lister" :
			lister($res);
		break;
	}
    echo json_encode($tabRes);



dans la vue requete AJAx :

function lister(){
	var formFilm = new FormData();
	formFilm.append('action','lister');
	$.ajax({
		type : 'POST',
		url : 'Films/filmsControleur.php',
		data : formFilm,//{action:'lister'}
		contentType : false,
		processData : false,
		dataType : 'json',
		success : function (reponse){
				filmsVue(reponse);
		},
		fail : function (err){
		}
	});
}

Modifié par rAyAan (27 Nov 2020 - 17:01)
Hello,
A lire ton code il est évidant qu'il te manque les bases :
Publication sur les Requêtes AJAX avec Jquery
Publication sur les Requête SQL et comment se prémunir contre les injections SQL

Ensuite :
Ta variable c'est
$res = ' ';
qui est communiquée à la fonction
lister
en premier paramètre et qui est toujours vide.
Avant d'être envoyée à
new filmsModele($requete,array($res)); 


Donc dans un premier temps il faudrait déjà envoyer un paramètre en plus dans ton ajax puis le contrôler et le sécuriser dans le php avant de l'assigner à
$res
. (Paramètre correspondant à ta Categorie.)

Ensuite utiliser les jetons pour des requêtes SQL c'est une mauvaise pratique à éviter pour des raisons de maintenance/lisibilité/sécurité. Comme le fait d'utiliser des variables de portées globales. Dans ton cas tu peu parfaitement faire retourner un array() à la fonction PHP
lister
et assigner ce résultat à un tableau qui serait déclaré en dessous de
$res = ' ';
et alimenté à chaque cas de ton
switch
.

Smiley cligne