Bonjour,
je tente les derniers retranchements
J’ai déjà réalisé des formulaires multicritères mais avec un seul tableau #ARRAY, un seul fichier XML. Là je tente grâce à de vieilles contrib du forum et contrib de faire :
une recherche multicritères avec plusieurs données JSON. Pour l’instant j’arrive à afficher une liste select à chaque choix donné.
- je choisi la marque de voiture
- je choisi la gamme
- je choisi le modèle
C’est articulé comme suit :
[(#SELF|form_hidden)]
<!—1er tri par marque →
Marques
#VALEUR{marque}
<INCLURE{fond=inclure/recherchemodele}{env}{ajax}> <!—tri n°2 →
<INCLURE{fond=inclure/recherchemodelebis}{env}{ajax}> <!—tri n°3 →
Les tri 2 et 3 sont construit comme suit :
<BOUCLE_testbis(CONDITION){si #ENV{marque}}>
#SET{trier2,#ARRAY}
<BOUCLE_model2(DATA){source json, http://www.monjson.com/getVariants.json?modelid=#ENV{marque}}{datapath 0}>
#SET{trier2,#GET{trier2}|push{
#ARRAY{
modeleid2,#VALEUR{MODELID},
variantid,#VALEUR{VARIANTID},
type,#VALEUR{VARIANT},
va_year,#VALEUR{VARIANTYEAR} }
}
}
</BOUCLE_model2>
Modèle
[(#VALEUR{type}|unique)]
</BOUCLE_testbis>
Questions :
- Comment ne récupérer à la fin QUE la valeur du dernier select et donc
- Comment je fais pour afficher les résultats, sachant que #ENV{modele} est une clé pour un dernier fichier externe json ?
Jusque là j’ai fonctionné avec un seul fichier DATA qui affichait tout et ensuite je cliquais sur un lien tout bête de ce type [(#URL_PAGE{fiche}|parametre_url{‹ produit ›,#VALEUR{produit}})]. En fait faudrait que mon bouton « submit » fasse pareil mais en utilisant « onchange= submit() » pour afficher un par un mes select mon bouton sert plus à rien…
Merci pour vos retours 
Teenoo
Bon j’y suis arrivée
Par ici la solution : un formulaire par élément select tout simplement. Et j’ai également créé un seul et même tableau #ARRAY
Maintenant petite question ! Comment puis-je remettre à 0 mes #ENV lorsque je change un élément dans un de mes select ? J’ai une adresse à rallonge
spip.php?page=produit&marque=Bentley&gamme=127&modele=347&modele=171
J’ai bien les bons produits affichés au final mais j’aimerais que la marque soit changée par la bonne (bien chargée au début mais à la suite) tout comme la gamme et supprimer les modeles affichés précédemment.
Bref n’avoir que les dernier #ENV chargés
Teenoo
Le 5 avr. 2016 à 12:37, Laetitia Boiron <boiron.laetitia@gmail.com> a écrit :
Bonjour,
je tente les derniers retranchements
J’ai déjà réalisé des formulaires multicritères mais avec un seul tableau #ARRAY, un seul fichier XML. Là je tente grâce à de vieilles contrib du forum et contrib de faire :
une recherche multicritères avec plusieurs données JSON. Pour l’instant j’arrive à afficher une liste select à chaque choix donné.
- je choisi la marque de voiture
- je choisi la gamme
- je choisi le modèle
C’est articulé comme suit :
[(#SELF|form_hidden)]
<!—1er tri par marque →
Marques
#VALEUR{marque}
<INCLURE{fond=inclure/recherchemodele}{env}{ajax}> <!—tri n°2 →
<INCLURE{fond=inclure/recherchemodelebis}{env}{ajax}> <!—tri n°3 →
Les tri 2 et 3 sont construit comme suit :
<BOUCLE_testbis(CONDITION){si #ENV{marque}}>
#SET{trier2,#ARRAY}
<BOUCLE_model2(DATA){source json, http://www.monjson.com/getVariants.json?modelid=#ENV{marque}}{datapath 0}>
#SET{trier2,#GET{trier2}|push{
#ARRAY{
modeleid2,#VALEUR{MODELID},
variantid,#VALEUR{VARIANTID},
type,#VALEUR{VARIANT},
va_year,#VALEUR{VARIANTYEAR} }
}
}
</BOUCLE_model2>
Modèle
[(#VALEUR{type}|unique)]
</BOUCLE_testbis>
Questions :
- Comment ne récupérer à la fin QUE la valeur du dernier select et donc
- Comment je fais pour afficher les résultats, sachant que #ENV{modele} est une clé pour un dernier fichier externe json ?
Jusque là j’ai fonctionné avec un seul fichier DATA qui affichait tout et ensuite je cliquais sur un lien tout bête de ce type [(#URL_PAGE{fiche}|parametre_url{‹ produit ›,#VALEUR{produit}})]. En fait faudrait que mon bouton « submit » fasse pareil mais en utilisant « onchange= submit() » pour afficher un par un mes select mon bouton sert plus à rien…
Merci pour vos retours 
Teenoo