Partage
  • Partager sur Facebook
  • Partager sur Twitter

conseil pour enregistrer 1 catégorie & 1 sous-cat

    13 octobre 2019 à 1:57:26

    bonjour à tous,

    les post des utilisateurs sont trié par catégorie et sous catégorie qu'il choisit en remplissant un formulaire! 

    j'ai pour ne pas avoir une liste trop longue , mais également permettre à l'utilisateur de se retrouver dans cette jungle utiliser un input list, avec une action en js quand l'utilisateur tape, qu'il retrouve dans la base de données , et qu'il lui propose, dans la datalist, 

    <input list="list-categories" id="js-category" name="categorie" required/>
    
    			<datalist id="list-categories">
    				<option value="cat1">
    				<option value="cat2">
    				<option value="cat3">
    				<option value="cat5">
    				<option value="cat6">
    ...
    				<option value="cat15">
    			</datalist>
    //js
    const getCategory = async function(e){
    		let input = e.target.value;
    //		if(input.length < 3){
    //			return;
    //		}
    		let data = await fetch('../requetes/index.php?keyword='+input)
    		.then(response=>response.json())
    		.then(json=>json)
    		option = document.getElementById('list-categories');
                while (option.firstChild) {
                option.removeChild(option.firstChild);
                    }
    		for(var i =0; i<data.length;i++){
    			option.insertAdjacentHTML('afterbegin','<option value="'+data[i]['activity']+' ('+data[i]['category']+')">');
    		}
    	}
    	document.getElementById('js-category').addEventListener('input',getCategory);


    et le traitement du formulaire

    $activity= trim(substr($_SESSION['projet']['categorie'], 0, strpos($_SESSION['projet']['categorie'],"(")));
    			$category= trim(str_replace('(',"",substr($_SESSION['projet']['categorie'], strrpos($_SESSION['projet']['categorie'],"(", -1),-1)));
    			$req= $bdd->prepare('SELECT id_category, id_activity FROM activities WHERE activity = :activity AND id_category = (SELECT id_category FROM categories WHERE category = :category) ');
    			$req->bindValue(':activity', $activity, PDO::PARAM_STR);
    			$req->bindValue(':category', $category, PDO::PARAM_STR);
    			$req->execute();
    			$res=$req->fetch(PDO::FETCH_ASSOC);


    je me suis heurté à une erreur où il manquait la catégorie ! 

    je voudrais donc palier à cet aléa qui peut se présenter, et j'ai remarqué que sur firefox, en version mobile, la datalist n'apparait pas, donc encore plus de chance de me retrouver dans le précédent cas! 

    j'espère avoir été clair!!



    • Partager sur Facebook
    • Partager sur Twitter

    conseil pour enregistrer 1 catégorie & 1 sous-cat

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown