par
béka » 20 juil. 2007, 09:09
je veux les garder car lorsd de l'affichage des résultats avec AJAX, je fais un lien en cliquant sur le nom de la pratique vers une page qui affiche la pratique en entier. Puis sur cette nouvelle pasge, j'ai fais un bouton qui permet de revenir au moteur de recherche. Seulement, lorsqu'on revient sur la page de recherche, ben elle a été rechargée et tous les critères cochés sont effacés, il faut tout recommencer pour l'utilisateur.
Je vousdrais alors créer un bouton sur la page qui affiche la practice "retour aux résultats" qui redirige vers la page de recherche avec les résultats déjà affichés et les critères déjà cochés.
Pourc ela, je pense donc avoir besoin de garder les critères sélectionnés qq part, et j'avais pensé aux variables de session.
Mais la fonction serialize n'a pas l'air mal, comment l'utiliser ?
Sinon c'est pas unserialize() au lieu de deserialize() ?
EDIT :
dans la page result-request.php (celle qui affiche les résultats, j'arrive déjà à récupérer les critères qu'a coché un utilisateur avec ce code :
if ( (isset($practice) and count($practice) >0 )) // si le tableau $practice est rempli
{
//afficher les critères qui ont été cochés par l'internaute
echo "<div style='margin-left: 10px;'>For this search, you have checked the criteria : ";
$criteriaFile = $cfg['ressources_root'].'/criteria.xml';
$domCriteria = new DOMDocument('1.0','UTF-8');
$domCriteria->load($criteriaFile);
$xpCriteria = new DOMXPath($domCriteria);
foreach ($params as $param) {
$explode = explode ('/',$param);
$categorie = $explode[0];
$critere = $explode[1];
//echo $categorie."/".$critere;
$critXml = $xpCriteria->query('//cat[@id="'.$categorie.'"]/criteria[@id="'.$critere.'"]');
$_SESSION['crit'][] = $critXml;
echo "<strong>".$critXml->item(0)->getAttribute('name')."</strong> - ";
}
echo "</div>";
Mais comment faire pour stocker chaque valeur dans une variable de session, sachant qu'il faut que je fasse la différence entre le critère 1 de a cart 1 et le critere 1 de la cat 3 par exemple. Car tous deux ont le même id. Il faut donc que je stocke la valeur de la cat et du crit.
je veux les garder car lorsd de l'affichage des résultats avec AJAX, je fais un lien en cliquant sur le nom de la pratique vers une page qui affiche la pratique en entier. Puis sur cette nouvelle pasge, j'ai fais un bouton qui permet de revenir au moteur de recherche. Seulement, lorsqu'on revient sur la page de recherche, ben elle a été rechargée et tous les critères cochés sont effacés, il faut tout recommencer pour l'utilisateur.
Je vousdrais alors créer un bouton sur la page qui affiche la practice "retour aux résultats" qui redirige vers la page de recherche avec les résultats déjà affichés et les critères déjà cochés.
Pourc ela, je pense donc avoir besoin de garder les critères sélectionnés qq part, et j'avais pensé aux variables de session.
Mais la fonction serialize n'a pas l'air mal, comment l'utiliser ?
Sinon c'est pas unserialize() au lieu de deserialize() ?
EDIT :
dans la page result-request.php (celle qui affiche les résultats, j'arrive déjà à récupérer les critères qu'a coché un utilisateur avec ce code :
[php]if ( (isset($practice) and count($practice) >0 )) // si le tableau $practice est rempli
{
//afficher les critères qui ont été cochés par l'internaute
echo "<div style='margin-left: 10px;'>For this search, you have checked the criteria : ";
$criteriaFile = $cfg['ressources_root'].'/criteria.xml';
$domCriteria = new DOMDocument('1.0','UTF-8');
$domCriteria->load($criteriaFile);
$xpCriteria = new DOMXPath($domCriteria);
foreach ($params as $param) {
$explode = explode ('/',$param);
$categorie = $explode[0];
$critere = $explode[1];
//echo $categorie."/".$critere;
$critXml = $xpCriteria->query('//cat[@id="'.$categorie.'"]/criteria[@id="'.$critere.'"]');
$_SESSION['crit'][] = $critXml;
echo "<strong>".$critXml->item(0)->getAttribute('name')."</strong> - ";
}
echo "</div>";[/php]
Mais comment faire pour stocker chaque valeur dans une variable de session, sachant qu'il faut que je fasse la différence entre le critère 1 de a cart 1 et le critere 1 de la cat 3 par exemple. Car tous deux ont le même id. Il faut donc que je stocke la valeur de la cat et du crit.