pagination ajax retour

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : pagination ajax retour

Re: pagination ajax retour

par moogli » 31 août 2016, 17:18

ne soit pas désolé, j'ai parfois du mal a comprendre ;)

ok, donc il faut que tu stock les choix de filtre. si le tri est fait coté serveur il faut enregistrer cela en session.
pour le moment tu regarde si tu as des infos dans $_POST pour générer les variables de tri, il faut que tu modifies ce comportement pour :
- affecter les infos de tri qui sont dans $_POST dans des variables de session ($_SESSION['xxx']) si les infos existent dans $_POST (comme tu le faire déjà surement)
- modifier la gestion du tri / prédicat pour utiliser les variables dans $_SESSION plutôt que $_POST (remplacer POST par SESSION au final ;) )

et voilà tu gardes la dernière recherche et peu la réutiliser à l'affichage ;)
L'avantage de faire ainsi c'est que cela est déjà prêt pour la pagination XD (qui intervient après).

ensuite pour la pagination, as tu commencé quelque chose ?

il te faut le nombre de ligne maximal que tu peux afficher en tenant compte des filtres
select count(1) as nb from produits where truc =ww and machin = xx
il te faut le nombre de lige que tu affiche par page ($nbParPage)
le nombre de page c'est $nbpage = ceil($total/$nbParPage)

pour afficher la liste des page une simple boucle for de 1 à $nbpage

pour la requête il faudrait savoir ce que tu utilise comme sgbd, il y a des solutions différentes suivant le sgbd (mais globalement c'est avec with ou une sous requête et ensuite dense rank, rownum ....)

@+

Re: pagination ajax retour

par Clair3 » 31 août 2016, 13:50

Désolée d'être aussi peu claire :)
Il s'agit d'une simple requête PHP avec un affichage HTML, CSS pour la pagination.

Ok donc pour la redirection (on parle seulement de consultation là) pour avoir ma page à l'identique (d'avant le clic sur la fiche produit) c'est un post et un repost des variables, c'est bien l'idée ?

L'appli est la suivante, j'affiche la liste des produits selon une recherche et je peux filtrer en affinant mes critères comme sur le bon coin sauf que je recharge pas ma page. Et quand je fais sur le détail du produit je veux revenir à l'identique avec les mêmes filtres, tout pareil quoi ^^

Claire

Re: pagination ajax retour

par moogli » 31 août 2016, 11:49

salut,

c'est pas totalement clair tous ça ;)

- barre de pagination : ça dépend :)
L'affichage est réalisé seulement en HTML ou c'est une table générée par du JS (datatable ?).
Dans le premier cas il faut compte le nombre d'élément totale le diviser par le nombre d'élement par page (+round pour éviter de perde des choses) et l'afficher.
ensuite coté serveur calculer le premier élément que l'on a besoin et retourner la liste qui va bien

dans le second cas la datagrid doit surement avoir l'option qui va bien.
Dans les deux cas tu souhaite surement faire du lazy loading (chargement des utiles seulement). Dans ce cas il te faut calculer la partie des élément a récupérer (par exemple en utilisant le row num et des requêtes toujours ordonnées pareil).

Pour le bouton précédent c'est que pour arriver sur cette page tu as posté un formulaire html.La seule solution c'est de faire une redirection entre la première page et la seconde (la page intermédiaire que tu vois entre celle où tu écris les messages et celle où tu les lis quand utilise ce forum).

si tu dois passer des données entres les pages, soit tu utilises les cookies soit la session serveur. si c'est de l'affichage les cookies suffisent largement.

Après ta phrase peu être comprise comme :
- j'ajoute un produit
- je le vois pas dans la liste des produits.
Dans ce cas c'est qu'il que tu recharges la liste des produits.

sans savoir exactement le fonctionnement de ton appli c'est vague, mais globalement si tu fais une requête serveur pour ajouter ton produit il fauut que tu indique à ta liste de produit de se mettre a jour. si c'est une navigateur entr epage html / php simple cela ne devrait pas poser de problème. Si tous le front est en JS il faut recharger le "store" qui contient la liste des données.

@+

pagination ajax retour

par Clair3 » 31 août 2016, 10:27

Bonjour,

Je cherche le moyen le plus simple pour créer une pagination en fonction du nombre d'éléments renvoyés par ma requête.
Quelle est la référence en la matière ?

Dans un second temps j'ai un souci avec le bouton précédent de ma page qui me demande de renvoyer le formulaire.
Comment ça se passe car c'est de l'ajax ? Comment empêcher ça ?

Toujours avec l'ajax comment indiquer à ma page produit.php de revenir à la listeproduits.php en gardant le dernier script exécuté sur listeproduits (filtres, choix...) car sur listeproduits je poste des valeurs mais sur produit.php je n'ai rien à poster...
Il faut faire le ping pong entre liste > produit > liste ? C'est cette façon de faire ? Poster en cacher sur produit pour les rebalancer à liste quand on clique sur Revenir à la liste ?

Merci de m'avoir lue, Encore plus si vous pouvez et voulez m'aider.


D'avance merci