2017-06-09 10 views
1

J'ai créé un forum sur mon site qui fonctionne avec les requêtes AJAX, donc l'URL ne change pas du tout. Vous cliquez sur un bouton, l'AJAX demande un fichier PHP, et la réponse met à jour le client. Cela fonctionne pour moi - cependant, j'ai besoin de savoir s'il est possible de rediriger un utilisateur à travers une série de demandes AJAX après une soumission de formulaire.PHP/JQuery - Rediriger la page vers une requête AJAX

  1. L'utilisateur saisit la page forum.php
  2. utilisateur clique sur le bouton sujet (requête AJAX pour charger des fils)
  3. utilisateur clique sur le titre de fil (requête AJAX pour charger des réponses)
  4. utilisateur clique sur le bouton de réponse (requête AJAX pour charger éditeur de texte)
  5. utilisateur clique sur soumettre (demande AJAX pour soumettre le formulaire)

à ce stade, je veux rediriger l'utilisateur ba ck à ce fil spécifique - donc je crois qu'ils devraient être dirigés à travers une série de demandes AJAX. Est-ce possible?

Extra: Aussi si vous croyez que ce processus de forum n'est pas efficace s'il vous plaît laissez-moi savoir vos opinions.

+1

Vous ne spécifiez pas si # 5 est également AJAX. Si PHP gère les valeurs POST du formulaire via un chargement de page au lieu de AJAX, la pratique standard serait de les recopier() d'où elles viennent ... –

+0

Je recommande de ne pas utiliser trop d'ajax. Pour toute navigation dans un forum, cela semble ennuyeux. – developerwjk

+0

# 5 est aussi une requête AJAX à un fichier php (mise à jour de la question) - Je pensais à l'option header() mais comment spécifier si l'URL n'a jamais changé? @Kevin_Kinsey –

Répondre

1

Semble vous avez quelques options:

  1. continuer à utiliser Ajax pour le soumettre, donc pas besoin de rediriger. (EDIT: on dirait que vous faites déjà cela, donc le problème est probablement que vous rejetez le contenu que vous voulez afficher, plutôt que de le cacher temporairement)
  2. implémenter un moyen de charger une page directement sur le forum. Ce serait en plus de l'appel ajax. Vous devez suivre l'ID du forum, l'inclure dans les paramètres $ _POST et rediriger le serveur vers l'URL appropriée.
  3. Générez du javascript (ou des champs/données appropriés pour votre javascript fixe à utiliser) qui feront que la page, lorsqu'elle sera rechargée, effectuera automatiquement les appels AJAX nécessaires.
  4. Passer Ajax et il suffit d'utiliser des charges de pleine page pour tout

mélanger les choses, parfois par en utilisant Ajax et parfois en utilisant une charge de page n'est pas idéal, mais il est parfois difficile d'éviter complètement. Gardez à l'esprit ce qui se passe lorsque l'utilisateur appuie sur le bouton BACK ou sur l'historique dans le navigateur. Voulez-vous qu'ils quittent votre application lorsqu'ils vous répondent? Ils peuvent finir dans un endroit étrange mélangeant des charges d'ajax/page. Pour cette raison, les gens favorisent (4)

(2) est probablement beaucoup de travail.

(1) serait OK, et le bouton RETOUR ramènera toujours l'utilisateur WAY BACK à un autre site Web. Personnellement, cela ne me dérangerait pas.

(3) serait une douleur et aussi être lent, et puis vous obtenez un comportement assez étrange avant/arrière. Éviter.

(4) pourrait être le meilleur.

+0

# 2 est parfait - j'avais déjà les variables enregistrées pour mes requêtes sql. J'ai créé une fonction JQuery avec des versions plus petites des requêtes ajax et codé en dur les variables à tester - cela a fonctionné! Alors maintenant, je vais passer les variables du fichier php à travers l'URL et les recevoir avec une méthode GET et il devrait être parfait. –