Comment obtenir une base de données de formulaire de données sans recharger la page?

Je veux faire un panneau faq lorsque l'utilisateur pose une question qu'il montre en haut de la division sans recharger la page car je pense que je dois établir une connexion avec la base de données après chaque seconde. Maintenant, la question est de savoir comment établir une connexion sans recharger la page et comment présenter une nouvelle question?

Vous avez deux options:

  1. Ajax , qui vous permet de récupérer des données du serveur avec JavaScript, que vous pouvez ensuite utiliser pour manipuler le DOM. La base d'Ajax est l'objet XMLHttpRequest , qui vous permet de récupérer des données complètement en arrière-plan en JavaScript. Notez que Ajax est limité par la même politique d'origine , mais pour ce que vous décrivez, c'est très bien – vous allez charger des données de la même origine.

  2. Cadres (par exemple, éléments iframe ), dans lesquels vous pouvez charger du contenu en définissant leur propriété src .

Parmi les deux, Ajax est beaucoup plus souple.

Références / lectures supplémentaires:

  • DOM2 Core
  • DOM2 HTML
  • DOM3 Core
  • API des applications Web HTML5
  • Objet XMLHttpRequest

Remarque latérale: bien que vous puissiez utiliser XMLHttpRequest et les méthodes DOM directement, notez qu'il existe des différences entre les navigateurs (et les bugs absolus), qui peuvent être lissés pour vous par une bonne bibliothèque comme jQuery , Prototype , YUI , Closure ou L'un ou l'autre de plusieurs autres . Ils offrent également beaucoup de fonctionnalités d'utilité utiles, vous permettant de vous concentrer sur le problème réel que vous essayez de résoudre plutôt que les détails de la plomberie.

Par exemple, voici comment envoyer une requête Ajax à un serveur en utilisant jQuery et avoir un élément sur la page mis à jour avec le fragment HTML que le serveur renvoie:

 $("#target").load("get_the_data.php", {article: x}); 

Cela dit: Demandez un fragment HTML de get_the_data.php envoyant l' article paramètre avec la valeur de la variable x , et placez ce fragment HTML dans l'élément ayant l' id HTML "cible". Ce serait une bonne 10 lignes de code si vous n'avez pas utilisé une bibliothèque. Maintenant, ce n'est pas beaucoup, mais répétez-le à maintes reprises (et dans le processus traite d'un bug IE autour de rechercher des éléments par leur id ), et vous voyez comment cela peut s'accumuler.

Je vous recommande de lire les références ci-dessus pour savoir comment les bibliothèques font ce qu'elles font (ce n'est pas magique), mais il n'y a aucune raison de ne pas tirer parti du travail acharné que les gens ont fait pour rendre ces choses plus faciles.

Je pense que ce dont vous avez besoin, c'est AJAX. C'est une façon de contacter le serveur avec un seul rafraîchissement partiel de la page. Je ne sais pas comment ça marche avec php car j'utilise asp.net, mais voici un lien qui peut vous aider.

C'est Ajax tourner. Ce dont vous avez besoin, c'est une technologie appelée AJAX. Vous pouvez trouver quelque chose d'utilisable dans la bibliothèque jQuery qui fournit différentes méthodes pour travailler avec Ajax plus facilement.

http://api.jquery.com/jQuery.ajax/

Vous créerez une relation avec votre langage de programmation côté serveur et votre base de données via une langue de script côté client (Javascript dans ce cas). C'est un exemple de ces réalisations:

http://jqueryui.com/demos/autocomplete/

Vous devez examiner les technologies push / publish / subscription. Peu de ce que je sais sont pubnum et commet