un showmessage() avec PHP ? - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : un showmessage() avec PHP ? (/showthread.php?tid=2801) |
RE: un showmessage() avec PHP ? - niahoo - 13-09-2010 essaie mon dernier code avec le "window.onload". ça peut venir de là. maintenant ça ne règlera pas le fait que tu te trompes dans ta compréhension du fonctionnement : que sur un fichier .php tu aies du code php et du javascript présents tous les deux n'implique en rien que l'un puisse communiquer avec l'autre. Php sert ici uniquement à générer du texte qui sera envoyé au navigateur. que ce texte contienne du javascript, du HTML, ou un exemple de code php, php s'en fiche royalement, pour lui ce ne sont que des chaines de caractères qu'il va écrire sur la sortie standard de l'ordinateur, qui sera ensuite récupérée par apache pour être envoyé au navigateur. si tu veux que du javascript aille chercher des infos depuis une autre page php sans rechargement de page, il faudra bien charger la page en question. javascript peut le faire en arrière plan, ce procédé est communémment appelé AJAX. RE: un showmessage() avec PHP ? - gameprog2 - 13-09-2010 Dans une page HTML, j'ai un formulaire, avec un pseudo à saisir, en faisant submit() (j'ai appris que c'était comme ça qu'il fallait faire pour passer les données à php), la page php reçoit la variable pseudo, elle fait des tests dessus, puis je voudrais qu'un message utilisateur soit affiché tout en gardant la page html visible aux yeux du joueur. Oui c'est le "load function" de ton code, que j'ai testé Niahoo RE: un showmessage() avec PHP ? - NicoMSEvent - 13-09-2010 héhé, je crois (ce n'est qu'une impression) que tu mélanges tout, et je trouve que les membres ici présents qui essaye de t'expliquer, commencent a être à bout de leur patience... ne leur en veux pas, je vais essayer d'expliquer a ma manière, ça ira p-e mieux... :p Je considère que toutes les pages, dynamiques ou pas, consultée par ton client, est du HTML pur(+ éventuellement du javascript -> le PHP n'est vu que du coté serveur). Donc, ton navigateur ne va que interpréter du HTML (+ javascript). Le but est d'afficher une information sur la page. Je considère que les différence entre un DIV et un "alert" javascript sont minimes.
Si tu arrives a afficher le div, tu arriveras aussi a afficher l'alert javascript.Lorsque tu clique sur un lien, tu voudrais qu'une alerte s'affiche avec un message (généré en php?) Donc, lorsque sur ta page tu va cliquer sur le bouton , ta page sera rechargée avec le message de ton choix... un exemple? (note : le HTML est statique, et ton alerte sera dynamique -> tu va générer du javascript à l'aide du php.. trop la classe non? ^^)
Esit : légère correction du cote html RE: un showmessage() avec PHP ? - niahoo - 13-09-2010 aaaaaaaaaaah ayé j'ai pigé. as tu remarqué que quand tu envoyais le formulaire, le navigateur appelait la page php qui le traite ? Les données ne sont pas créées sur le serveur. ton navigateur regarde l'attribut "action" de ta balise <form action="qdq">, et appelle cette page comme n'importe quelle autre page. si la méthode d'envoi est POST, alors les données du formulaires sont envoyées par le navigateur lors de l'appel de la page, de la mème manière que sont envoyées les cookies. si la méthode est GET alors les donnée sont passées dans l'url. Tu quittes donc ta page pour aller vers celle qui traite le formulaire. cette page doit donc ensuite renvoyer sur la page précédente avec header('location: page-precedente.html');. Ou bien, tu places le code de traitement du formulaire sur la même page, au dessus du HTML de façon à ce que si tu détectes un formulaire envoyé, tu le traites, et qu'ensuite, formulaire ou pas, tu affiches ta page. RE: un showmessage() avec PHP ? - Ter Rowan - 13-09-2010 (13-09-2010, 01:23 PM)gameprog2 a écrit : Dans une page HTML, j'ai un formulaire, avec un pseudo à saisir, en faisant submit() (j'ai appris que c'était comme ça qu'il fallait faire pour passer les données à php), la page php reçoit la variable pseudo, elle fait des tests dessus, puis je voudrais qu'un message utilisateur soit affiché tout en gardant la page html visible aux yeux du joueur. je pense que la difficulté de compréhension communication vient de là, alors je m'essaie à une explication ^^ pour faire ce que tu dis il y a deux solutions que je pense simple à mettre en place 1) sans ajax : ta page / formulaire HTML est générée par un script php lorsque l'utilisateur "submit()" il rappelle le même script php. dans ce script, avant de construire le formulaire tu testes les variables postées pour savoir si on a répondu ou non au formulaire si on n'a pas répondu au formulaire, tu l'affiches vierge si on a répondu au formulaire, tu réalises tes tests sur la variables pseudo, si il y a un problème, tu affiches le formulaire avec les valeurs déjà postées (histoire de pas tout se retaper pour l'utilisateur) et tu rajoutes en plus un div avec ton message d'erreur si il n'y a pas de problème, tu n'affiches pas le formulaire mais tu passes à la suite => à noter, c'est là où on aura intérêt à découper le script php en plusieurs morceaux, le script php appelé qui teste et inclue tel ou tel composant (exemple formulaire) 2) avec ajax ta page / formulaire HTML possède du javascript. Ton bouton submit n'appelle pas une page php mais une fonction javascript cette fonction javascript va lancer un appel en ajax à un script php qui testera la valeur de ton pseudo et renverra au javascript un retour ok / pas ok. Le retour (xml ou json ou texte, fonction de ce qui te semble le plus simple à manier) est alors traité par le javascript : si le retour est ok, tu lances la page suivante (normalement un script php qui génère une page html après avoir sauvegardé les informations du formulaire) si le retour est ko, tu crées (ou affiche si tu l'avais prévu avant mais caché) un div avec le message d'erreur perso, je te conseille dans un premier temps de le faire sans ajax, déjà pour ressentir le mécanisme entre page web et script php et aussi découpage du code php (mon "a noter") RE: un showmessage() avec PHP ? - NicoMSEvent - 13-09-2010 @niahoo : heu... mwais... tu n'as pas encore tout compris, mais ça approche je reste sur la même page grace à : action=? ce qui signifie que j'appelle la même page. Le code après sert à voir si j'ai utilisé mon formulaire (si la variable "alerte" existe) @Ter Rowan : je trouve que tu pousse un peu là en parlant d'ajax, faut d'abord maitriser les bases avant de faire de la haute voltige ^^ RE: un showmessage() avec PHP ? - Ter Rowan - 13-09-2010 (13-09-2010, 01:38 PM)NicoMSEvent a écrit : @Ter Rowan : je trouve que tu pousse un peu là en parlant d'ajax, faut d'abord maitriser les bases avant de faire de la haute voltige ^^de l'escalade, de l'escalade ^^ la haute voltige je sais pas encore faire et j'ai peur du vide alors mais on s'est croisé tous les trois là RE: un showmessage() avec PHP ? - gameprog2 - 13-09-2010 Ah je crois que vous vous approchez là Niahoo et Addict, merci, je vais voir ça Citation :Tu quittes donc ta page pour aller vers celle qui traite le formulaire. cette page doit donc ensuite renvoyer sur la page précédente avec header('location: page-precedente.html');.Mais comment la page appelante (la html) va-t'elle connaitre la variable à afficher dans le message qu'elle va afficher ? Citation :Ou bien, tu places le code de traitement du formulaire sur la même page, au dessus du HTML de façon à ce que si tu détectes un formulaire envoyé, tu le traites, et qu'ensuite, formulaire ou pas, tu affiches ta page.Cette solution me plairaît ! je vais voir comment la tester. Addict : Citation :je reste sur la même page grace à : action=?je connaissais pas ça, merci Ah Rowan : ça me plairait de tester ça !!! Citation :1) sans ajax : Je vous tiens au courant de mes tests RE: un showmessage() avec PHP ? - niahoo - 13-09-2010 Citation :Mais comment la page appelante (la html) va-t'elle connaitre la variable à afficher dans le message qu'elle va afficher ? en utilisant la session par exemple. Tu stockes ton message d'erreur en session, et tu le récupères sur l'autre page. Bon, moi je suis pas fan ... Le fait d'avoir sur le même appel le traitement du formulaire et l'affichage du résultat simplifie ça. Mais ne surcharge pas trop tes scripts, utilises la structure 'include' (avec parcimonie) à bon escient. RE: un showmessage() avec PHP ? - gameprog2 - 13-09-2010 Ok, je suis en train de tester l'appel et le traitement sur la meme page PHP La page PHP utilise echo pour afficher la page html du formulaire. Je rappelle que ce désign est là pour test seulement Mais pour traiter les donnees du formulaire, je fais comment ? je laisse un submit en mettant dans "action" le nom de la meme page certainement, mais c'est le mot "self..." qui est utilisé en général non ? Addict a dit que c'est "?" dans action, je vais le tester. Bon je vais afficher le code complet, je voulais pas le faire car il est long Excusez-moi, le forum empeche d'afficher le code html qui se trouve entre les guillemets dans l'instruction php echo(). c'est pour ça qu'il y a plein de guillemets vides ici
A quel endroit de la balise [code=php] met-on l'anti-slash ? Car le lien permettant d'afficher du code php me met chaque fois une balise code ouvrante, je vais la fermer manuellement donc. Vala j'ai corrigé mon code et il s'affiche bien en html sur le navigateur, maintenant il faut que je vois pourquoi il ne prend pas en compte le traitement des champs^^ J'avance, j'avance... grace à vous |