Ajax ou Javascript
Salut, je suis en ce moment en train de me faire un site php sans bdd, mais voilà je rencontre un problème car je n'y connais rien en ajax et en javascript, et j'aimerais qu'un fichier inclu dans un autre fichier php s'actualise des qu'il est modifié exemple : <?php include 'monfichier.php';> <--- ce fichier doit s'actualiser sur la page sans que je reload la page !
Alors je ne sais pas si il faut du javascript ou de l'ajax pour faire ceci ? Et si vous aviez un bout de code ou une explication sur ce sujet, je remercie d'avance les réponses constructives et qui pourrait m'aider !
PS : comme pour un t'chat !
AJAX permet de faire appel au php grâce à la force javascript. En tant que développeur je te conseille d'apprendre à utiliser les Bases de données c'est ultra nécessaire.
Après L'ajax c'est pas non plus facile facile, vaut mieux maitriser php et un peu javascript pour s'y plonger. Ce que je te conseille si tu es pressé de faire ton truc c'est d'aller chercher des modules déjà tout faits et de l'intégrer dans ton site.
http://scriptsgratuits.info/Scripts/PHP/Chat/Myspeach_171.html Tiens un lien pour un chat AJAX sans BDD.
Hésites pas à en dire plus ^^
A une époque où j'étais vraiment une merde en javascript ce tuto m'avait bien servi:
http://blog.jaysalvat.com/article/un-chat-elementaire-en-php-jquery
Le mec crée une shoutbox donc un chat, sans base de donnée avec un fichier texte qu'il rafraichi automatiquement toutes les x secondes avec jquery, son tuto et son script sont vraiment simple mais pour comprendre certaines bases il est pas mal je trouve.
Idem que Holiday, les bases de données sont faîtes pour sauvegarder les infos, autant les utiliser ;)
Si tu veux des conseils hésite pas. Je peux même te filer une classe de connexion si tu optes pour l'option bdd.
beh en meme temps AJAX ca veut dire Asynchronous Javascript je sais plus quoi. c'est juste du js.
winkyy le dieu de la programmation.
Cf lui : "Mais parlez de prog, je vous nique tous". (http://choualbox.com/JxBB)
Au passage ben, donne moi quelques explications sur tes connaissances au lieu de troller des insultes sans fondement.
Bizut.
Etalerais-je mon savoir si je te disais que la fonction "modifier" permettait d'éviter d'écrire 40 commentaires consécutifs ?
Tu peux me dire où tu modifies le DOM dans ton code s'il te plait ? Nulle part.
Ton code est un mélange de c/c HTTPRequest (sans prendre la peine de traduire en français) et une fonction qui l'utilise pour insérer de manière barbare on-ne-sait quelles données sans vérifier toutes les conditions de transfert HTTP.
Suffit que #shoutarea ne soit pas un div et ton code ne marche pas sous IE (<= 7, sûr).
Ca ne sert à rien de me blablater des infos que j'ai déjà lues il y a des années.
HTTPRequest peut retourner 2 types de données : responseText (texte brut même si XML) et responseXML (texte XML parsé, lui), or ton code utilise responseText. Donc je répète, il n'y a pas d'Ajax dans ton code.
Je répète aussi que l'Ajax n'y est pour rien dans le fait de recharger une page ou non. C'est HTTPRequest.
Mon égo est loin d'être surdimensionné. J'aime bien me faire insulter alors que j'ai raison. Oui je suis vicieux...
Une idee de solution:
1- un fichier php qui va retourner ton resultat
2- un fichier qui va traiter ce resulat
Exemple en ajax, il y a d'autre facon de s'y prendre mais je n'ai pas tres bien compris ce que tu veux faire:
function ajaxFunction(){
var ajaxRequest;
try{
// Opera 8.0+, Firefox, Safari
ajaxRequest = new XMLHttpRequest();
} catch (e){
// Internet Explorer Browsers
try{
ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try{
ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e){
//Aucun navigateurs supportes, cas tres rare
alert("Your browser broke!");
return false;
}
}
}
return ajaxRequest;
}
function afficheDonnee() {
htmlRequest = ajaxFunction();
if (htmlRequest==null){
alert ("Browser does not support HTTP Request");
return;
}
htmlRequest.onreadystatechange = function(){
if(htmlRequest.readyState == 4){
document.getElementById("shoutarea").innerHTML = htmlRequest.responseText;
}
}
htmlRequest.open("GET", "//ici le fichier qui retourne le resultat", true);
htmlRequest.send(null);
}
setInterval("afficheDonnee()",1000); // va te permettre de reactualiser ton resulatat de la fonction afficheDonnee automatiquement
3- tu appelles la fonction afficheDonnee dans la partie que tu veux afficher le resultat, qui sera reactualiser par la fonction setInterval (ecrit plus haut)
Oui car je vais encore vous niquer.
- Twitter je ne sais pas, mais facebook utilise des BDD.
- Le JS est un langage, l'Ajax est un concept utilisé principalement en JS.
Et votez négatif à mes commentaires si ça vous amuse, j'ai cité 4 idées, vous m'avez rabaissé simplement parce-que vous pensiez que 2 des 4 étaient fausses, vous aviez une fois de plus tort.
Si vous avez d'autres questions, n'hésitez pas ;)
- Dire que l'Ajax est du JS est faux
- Les bases de données sont ce qu'il y a de plus rapide
- Les tchats ne sont pas codés en Ajax, Dieu merci (Erlang, applet java & co)
- Faut arrêter de prôner jQuery bon sang. C'est efficace pour les effets de design, c'est tout. C'est vos bétises de scripts jQuery qui rendent vos pages lentes. Une requête Ajax en JS pur prend 3 lignes de plus qu'avec jQuery, et c'est 2 fois plus rapide.
le jour où t'aura un site dynamique qui solicetera énormément d'actions sur ta base et qui dépassera les 10 000 uniques journalier tu changera de discours, si twitter et facebook tourne en config NOSQL c'est pas pour rien mais comme d'habitude tu viens étaler ta science du javascript en étant totalement hors sujet.
ps: on peut jouer avec les mots mais l'ajax est bien dans 99,9% des cas du JS http://fr.wikipedia.org/wiki/Ajax_%28informatique%29
tu peux coder un tchat en ajax sans probleme!
En effet, l'ajax n'est pas un nouveau langage de programmation mais une methode. elle est principalement construite en JS.
La difference se situe surtout a son utilisation. L'ajax permet essentiellement de faire des requêtes cote serveur en evitant de recharger toute la page, tandis que le JS a lui tout seul permet d'effectuer des effets visuels cote client.
Pour l'anecdote, j'ai recodé le chat de facebook sur mon site en Ajaj (aperçu: http://bit.ly/ib9u1u), donc oui je suis au courant. Cependant, c'est pas du tout performant.
Tu as répété exactement ce que j'ai dit, à savoir que l'Ajax n'était en rien un langage (ce qui m'a valu encore une insulte).
Et tu trompes sur la définition d'Ajax.
Concernant ton code, il manque des conditions (vérifier .readyState == 4 ne suffit pas), mais là où je trouve ça vraiment grave... c'est qu'il n'y a pas une ombre d'Ajax dans ton code.
Bref, pour ne pas tourner autour du pot, tu (et beaucoup d'entre vous j'imagine) confonds Ajax et HTTPRequest. HTTPRequest est un objet JS qui permet d'exécuter des requêtes Ajax et donc de ne pas recharger la page. Ajax quant à lui n'est qu'une implémentation du XML en JS.
Ajax = envoyer une requête, récupérer du XML, le parser (avec XML Parser & co) et le traiter
Ajaj = envoyer une requête, récupérer du Json, le parser (avec eval()) et le traiter
Ajat = envoyer une requête, récupérer du texte brut et le traiter.
Mais récupérer du html et modifier le contenu de ta page sans traitement, je dis vive les injections xss !
Ralala...
"c'est qu'il n'y a pas une ombre d'Ajax dans ton code" ... "Ajax = envoyer une requête, récupérer du XML, le parser (avec XML Parser & co) et le traiter"
XmlhttpRequest (utiliser dans mon exemple) est un object JS qui permet d'ECHANGER des données avec le serveur au format texte, XML ou JSON. Les fichiers XML sont automatiquement PARSES, reste plus qu'a les recuperer avec les methodes DOM.
XmlhttpRequest s'appelait XMLHTTP dans les premiers temps, avant qu'Ajax ne devienne le nom le plus communément utilisé.
Alors ne vient pas dire qu'il n'y a pas de l'"ajax".
Va utiliser ton xml parser pour "faire de l'ajax" en plusieurs ligne!
Ah oui, je ne me trompe pas sur "ma definition" de l'ajax qui n'en est pas une. Je donnais juste une explication basique et facilement comprehensible pour ceux qui ne sont pas dans ce domaine entre le JS et l'AJAX, entre autre comme j'ai mentionne, pouvoir recharger des informations sur une partie d'une page sans tout recharger!
une derniere chose, utiliser le cross-site scripting n'est pas le but ici donc hors sujet. Pas besoin d'essayer d'étaler ton savoir.
Dixit Delacour " le culture c'est comme la confiture, moins on en a et plus on l'étale!"
Tu ne dois accéder à ce site que si tu as au moins 18 ans ou si tu as l'âge légal pour visionner ce type de matériel dans ta juridiction locale, l’âge le plus élevé étant retenu. En outre, tu déclares et garantis que tu ne permettras aucun mineur à d'accéder à ce site ou à ces services.
En accédant à ce site, tu acceptes nos conditions d'utilisation.