J'ai une base de données de liens que les utilisateurs peuvent soumettre. Chaque fois qu'un utilisateur soumet un nouveau lien, il est ajouté à la base de données. J'ai une page séparée qui liste tous les liens soumis. Comment puis-je avoir cette page séparée vérifier la base de données pour les changements et les charger avec AJAX quand il les trouve?Utilisez PHP + jQuery AJAX pour vérifier la base de données MySQL pour les changements et charger les modifications?
Répondre
La page qui doit être mise à jour en fonction du contenu de la base de données doit interroger le DB de temps en temps. Javascript est une technologie côté client et n'est pas conçu pour interagir directement avec les serveurs principaux.
Le javascript ressemblerait à ceci (en utilisant jquery):
$.post("/webroot/checkForChanges.php",
{ currentNumber: currNumString },
function(dat){
$(dat).find('link').each(function() {
$('#linksTable').append(""+$(this).text()+"");
});
});
Cela fera une requête POST à la page que vous écrirez (checkForChanges.php) avec la variable nommée currentNumber qui a une valeur qui est la représentation sous forme de chaîne du nombre de liens actuellement dans la table (comptez-les comme bon vous semble). La partie fonction (dat) du code est la fonction de rappel qui est exécutée lorsque la requête est terminée (c'est-à-dire lorsque la page php a terminé le traitement et que le texte résultant a été reçu dans le navigateur).
Je reviendrai sur ce que cela fait quand j'ai expliqué ce que fait la page PHP. Vous ne nous avez rien dit sur la structure de votre base de données, mais puisque vous permettez aux gens d'ajouter des liens, vous devez avoir une séquence définie quelque part qui garde un identifiant entier pour le lien (de sorte que chaque lien peut être donné un identifiant unique dans la base de données). Je suppose que vous avez appelé ce « liens-count » Vous devez créer une simple page php avec le pseudo-code suivant:
//open a database connection
$DB = connect(name, user, password);
//receive value
$currNum = $_POST['currentNumber'];
//check to see if sequence number has incremented since last time:
$seqNum = query("SELECT currval('links-count')");
if ($seqNum == $currNum){
exit(0);
} //if they are the same, just exit the page without writing anything
//otherwise, carry on... get the result of your query (for new links)
//and loop through, echoing return data
$newEntries = query("SELECT url FROM links WHERE id > ".$currNum);
echo "<newlinks>";
while ($result = fetch_result($newEntries)) {
echo "<link><a>".$result."</a></link>";
}
echo "</newlinks>";
La sortie retournée par cette page sera un document XML avec un nœud pour chaque lien qui contient le code HTML que vous voulez mettre dans votre cellule de tableau.
Maintenant, nous pouvons revenir à la fonction de rappel dans la demande .post $ dans votre code Java côté client:
function(dat){
$(dat).find('link').each(function() {
$('#linksTable').append(""+$(this).text()+"");
});
});
dat est le texte retourné, l'envelopper comme un objet jquery puis trouver le collection de balises nommée 'lien'. pour chaque balise 'link' renvoyée par la page php, exécutez une fonction qui ajoute une nouvelle ligne à la table linksTable qui contient les données à l'intérieur des balises link.
Vous pouvez avoir un javascript actif sur la page séparée qui interroge essentiellement la base de données pour les modifications ou vous pouvez avoir une fonction de rappel le faire après une soumission réussie. Je ne suis pas vraiment sûr de ce qui se passe ici, donc je ne sais pas vraiment quoi recommander.
- 1. Notifier les changements de propriété pour les données de base?
- 2. Suivi des modifications de la base de données MySQL
- 3. Utilisez jQuery pour vérifier si toutes les div sont cachées
- 4. Modifications de la base de données et branchement VCS
- 5. Requête dynamiquement une base de données pour vérifier la valeur
- 6. Suivre les modifications sur une base de données
- 7. Le moyen le plus compatible pour écouter les changements de base de données?
- 8. Script PHP pour peupler les tables MySQL
- 9. Utilisez jQuery pour définir la couleur d'arrière-plan avec la valeur de la base de données
- 10. Utilisez AJAX pour remplir page après page en utilisant jQuery
- 11. Comment tester le test pour l'application, la base de données et les changements de date sans fonction déclenchée
- 12. Traitement de formulaire jQuery avec PHP à base de données MYSQL à l'aide de $ .ajax Demande
- 13. Charger les données inFile dans Mysql
- 14. PHP: Vérifier SimpleXmlElement pour les erreurs
- 15. Charger les données d'un fichier php sur l'iphone
- 16. Quelles sont les méthodes pour vérifier l'entrée de l'utilisateur et empêcher l'injection mysql?
- 17. jQuery vérifier la base de données mysql si le nom d'utilisateur est déjà pris
- 18. Jquery, glisser-déposer et enregistrer dans la base de données mysql?
- 19. Comment surveiller les tables dans SQL Server pour les modifications
- 20. PHP/MySQL - un filtre de tableau pour les bots
- 21. Moniteur Répertoire pour les modifications
- 22. Données de base NSPredicate pour les relations
- 23. Modifications de version pour les procédures stockées
- 24. Comment faire pour supprimer les balises html et les informations de sérialisation php de résultat mysql sans php?
- 25. PHP/MySQL/Utiliser la chaîne pour sélectionner parmi la base de données
- 26. php stocker dans la base de données tamil php mysql
- 27. Enregistrer JSON dans la base de données et charger avec JQuery
- 28. charger les options via. jquery
- 29. Comment créer une requête SQL à l'aide de DATE_SUB pour vérifier les données d'hier OU si c'est lundi, pour vérifier les données de vendredi?
- 30. Liste de tous les types de données Mysql et la syntaxe pour tous les paramètres
Eh bien, c'est une réponse assez complète que j'ai pris un certain temps ... bballbackus, l'avez-vous essayé? Pourriez-vous accepter ou voter pour ou au moins donner votre avis dans vos commentaires? Merci – sillyMunky