Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1185 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  "re-executer " un script php via un bouton html

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

"re-executer " un script php via un bouton html

n°2058848
crasse2
Posté le 22-02-2011 à 21:29:05  profilanswer
 

bonsoir !
 
j'ai integré dans une div un script de rotation aléatoire d'images (en gros a chaque rafraichissement de page il va chercher une image au pif dans un repertoire que j'ai indiqué) et je voulais savoir si il etait possible de "relancer" a la demande le script php pour pouvoir changer le contenu de la div sans avoir a recharger entierement la page ?  
 
voici en gros comment c'est construit (c'est simplissime, mais en php je panne pas grand chose donc je sais pas trop comment re executer rotate.php au moyen d'une commande "onclick" logé dans une autre div par exemple)
 

Code :
  1. <img id="fond" src="img/rotate.php" alt="" />


 
auriez vous une idée ?

mood
Publicité
Posté le 22-02-2011 à 21:29:05  profilanswer
 

n°2058869
billgatesa​nonym
Posté le 23-02-2011 à 01:07:48  profilanswer
 

Oui, il est possible de recharger uniquement le contenu d'un div avec du code PHP, sans tout recharger.
 
C'est une technique qui s'appelle ajax, et qui nécessite aussi un petit peu de javascript.
 
Faire une recherche sur le web pour des tutoriaux à propos d'Ajax. La première fois qu'on voit, on peut penser que c'est un peu compliqué (et c'est pour cela que je ne l'explique pas ici), mais avec quelques exemples et un peu de pratique, on arrive à s'en sortir.
 
Bon courage !

n°2058883
cetplus
Wazard dans l'ombre
Posté le 23-02-2011 à 08:29:40  profilanswer
 

Du AJAX en PHP ???? Oo wow c'est quoi ce topic.
Relis la définition de AJAX :
http://fr.wikipedia.org/wiki/Ajax_%28informatique%29

n°2058907
billgatesa​nonym
Posté le 23-02-2011 à 10:00:37  profilanswer
 

Encore un posteur qui insulte les autres !  :o  
 
Et en plus, à tort !   :kaola:  
 
Voir http://www.w3schools.com/php/php_ajax_database.asp
http://gael-donat.developpez.com/web/intro-ajax/  
http://www.xul.fr/scripts/ajax-php.php  
http://j-seignalet.developpez.com/ [...] alendrier/
http://www.editeurjavascript.com/t [...] script.php
 
Bien sûr que Ajax et PHP vont ensemble.
Ce n'est pas obligatoire, mais cela arrive quand le langage utilisé du côté du serveur est le PHP.
Si on utilise autre chose, côté serveur, ce sera autre chose.
Mais, en l’occurrence, c'est PHP qui est utilisé, et donc on n'aura un appel de Javascript vers PHP, puis au retour, une mise dans le div par Javascript.
 
cetplus, j'espère que vous allez vous excusez !
Ou bien si vous éditez votre message, alors j'éditerais le mien.

n°2059245
cetplus
Wazard dans l'ombre
Posté le 24-02-2011 à 02:59:28  profilanswer
 

Hallucinant !
Déjà je n'ai jamais insulté qui que ce soit.
Ensuite je suis désolé : le AJAX est écrit en Javascript.
Il peut y avoir une interaction (tu le cites toi même).
 
Mais quand j'ai vu :
"Oui, il est possible de recharger uniquement le contenu d'un div avec du code PHP, sans tout recharger. C'est une technique qui s'appelle ajax, et qui nécessite aussi un petit peu de javascript."
 
C'était pas du tout clair, comme tu l'a présenté.
Donc je m'excuse de la précipitation, vu que tu as parfaitement compris.

n°2059443
crasse2
Posté le 24-02-2011 à 18:57:06  profilanswer
 

re, merci pour vos réponse, ne vous enflammez pas  :jap: , je suis allé regarder du coté d'ajax et effectivement ça colle, mieux que ça j'ai trouvé un fonction jquery qui simplifie encore la chose (pratique vu que mon site comportait deja du jquery, j'avai la librairie loadé et la syntax en mode "assisté" du jquery me scie bien  :wahoo: ) par contre du coup j'ai un nouveau probleme pour cette meme page, toujours relative au "rechargement" du fichier php rotate.php :
 
en fait je me suis rendu compte que je n'arrivait pas a rafraichir le fichier en question, je m'explique : en gros j'ai commencé par proceder comme ceci :
 
dans ma page principale il y a ma div dont le contenu doit changer quand on clique sur un bouton :
 

Code :
  1. <div id="fond_ouais"></div>

(je vous epargne le css qui lui correspond, de toute façon le probleme de vient pas de la ^^)
 
ainsi que le bouton :
 

Code :
  1. <div id="refresh"><img src="img/refresh.png"/></div>


 
et le script jquery :
 

Code :
  1. $(document).ready(function() { 
  2. $("#refresh" ).click(function(){
  3. $("#fond_ouais" ).load("fond.php" );
  4. });
  5. });


 
et voici la page "fond.php" qui contient juste la balise image avec le script rotate en source :
 

Code :
  1. <body>
  2. <img id="fond" src="img/rotate.php" alt="oui" />
  3. </body>


 
(pareil, y'a du css en plus mais je ne le mentionne pas ici)
 
donc en gros ça marche bien, mais une fois ! en gros je fais une preview, j'ai ma div vide, j'appui sur refresh et une image (différente a chaque tentative de preview) s'y loge, cependant si je réessaie d'appuyer sur refresh il me reload bien ma page fond.php mais ne change pas l'image, en gros il ne réexecute pas le fichier "rotate.php", il doit garder en mémoire l'image précedente peut etre...
 
l'autre solution que j'avai envisagé en premier lieu mais que je n'ai pas réussi a faire fonctionner c'est d'avoir ma balise image directement dans la div de ma page principale (et non pas dans une page tierce qui sera appelé par le jquery) et de tenter d'y recharger la source directement par jquery, mais la ça ne fonctionne pas du tout T_T ex :
 

Code :
  1. <head>
  2. (...)
  3. $(document).ready(function() {
  4. $("#refresh" ).click(function(){
  5.     $("#fond" ).load("qap03/rotate.php" );
  6.     });
  7. });
  8. (...)
  9. </head>
  10. <body>
  11. (...)
  12. <img id="fond" src="qap03/rotate.php" alt="oui" />
  13. <div id="refresh"><img src="img/refresh.png"/></div>
  14. (...)
  15. </body>


 
mais il ne se passe rien, quelqu'un aurait il une idée de comment je pourrais faire ?

n°2059444
crasse2
Posté le 24-02-2011 à 19:13:16  profilanswer
 

edit : trouvé !
 
j'ai trouvé une solution, très simple au final xD :
 

Code :
  1. <div id="fond_ouais"><img id="fond" src="qap03/rotate.php"/></div>
  2. <div id="refresh"><img src="img/refresh.png" onclick="fond.src='qap03/rotate.php'"/></div>


 
marche nickel !

n°2059778
crasse2
Posté le 26-02-2011 à 02:09:08  profilanswer
 

bon et bien en fait non, ça marche mais uniquement sur opera qui semble virer spontanément le rotate.php du cache lorsque je clique (du coup il l'éxecute de nouveau et me donne une nouvelle image) sinon pour FF, IE et Chrome , il reste coincé sur la meme image (en gros il ne relance pas le script de randomisation et reste sur la premiere image trouvée) du coup ce qu'il faudrait c'est que je trouve un moyen de lui dire "vide le cache avant de recharger rotate.php" lorsque je clique sur refresh pourqu'il n'ai pas le reflexe (logique ceci dit) de réutiliser ce qu'il a deja utilisé une fois. Est-ce possible ? (j'ai essayer la réactualisation de div en ajax et j'ai le meme probleme, en fait ça vient du fait que contrairement a beaucoup de témoignage que j'ai lu concernant les utilisation d'ajax, genre actualiser une fenetre de chat, une pendule etc... la mon fichier php reste le meme, c'est un randomizer, du coup il le recharge pas et garde ce qu'il a deja.
 
Du coup faudrai vraiment que je trouve un moyen de vider le cache du navigateur de l'utilisateur (ce qui n'est pas sympa du tout) ou alors plus chouette, d'empecher le script rotate.php de se mettre en cache lorsqu'il est executer (du coup le navigateur le ré executera vraiment a chaque fois) est-ce possible ?

n°2059779
cetplus
Wazard dans l'ombre
Posté le 26-02-2011 à 03:29:26  profilanswer
 

Salut.
Voici un code source antérieur que j'utilisais pour mes fonds écrans: (si cela peut t'aider)

Code :
  1. <html>
  2. <script language="Javascript">
  3. <!--
  4. function mote()
  5. {
  6. var doc=document.getElementById('fond');
  7. var math=Math.floor(Math.random() * 5) + 1;
  8. document.title = math;
  9. switch(math){
  10. case 1:doc.src="1.jpg";break;
  11. case 2:doc.src="2.jpg";break;
  12. case 3:doc.src="3.jpg";break;
  13. case 4:doc.src="4.jpg";break;
  14. case 5:doc.src="5.jpg";break;
  15. }}
  16. //-->
  17. </script>
  18. <body onLoad="javascript:mote();" marginwidth="0" marginheight="0" topmargin="0" leftmargin="0" bgcolor="#A0A0F6">
  19. <p><img id="fond" src="" width="1254" height="810"></img></p>
  20. </body></html>
 

Voili, voilou. Bonne chance !

 

Edit : Est-ce que je peux voir ton php ? Tu nous en parles, mais on ne sais pas de quoi il s'agit.
Une autre solution que je te propose, c'est d'incrémenter directement ton image dans un fichier .php ce qui évite les problèmes.
Je veux dire que la page que tu consultes avec l'image est elle même le script php.

 

Edit2 : Tu veux la mettre où ton image ? Sur ton site, sur un blog, sur un forum ?


Message édité par cetplus le 26-02-2011 à 07:02:54
n°2059781
cetplus
Wazard dans l'ombre
Posté le 26-02-2011 à 07:02:26  profilanswer
 

Salut.
Finalement je crois avoir compris ton problème.
Voici ce qu'il te faut :

Code :
  1. <div id="loadpix"><img src="http://pwnt.co.uk/sigs/quotes/index.php?load=11.893012598639508"></div>
  2. <a onclick="javascript:var doc = document.getElementById('loadpix').innerHTML;var dic = document.getElementById('loadpix');if(doc.indexOf('t1')&gt;=0){dic.innerHTML = '&lt;img src=\'http://pwnt.co.uk/sigs/quotes/index.php?load=t2\'&gt;';}else{var math=Math.random()*500;dic.innerHTML = '&lt;img src=\'http://pwnt.co.uk/sigs/quotes/index.php?load='+math+'\' &gt;';}">Refresh</a>
 

Tu appuis sur "Refresh" pour reloader l'image.
Le principe est simple, on initialise une variable 'Math' qui random un chiffre, puis on l'incrémente dans la page php avec $GET.
J'avais essayer avec le changement d'ID mais ça ne fonctionnait pas, car le navigateur comprenait ce qu'il fallait changer (pas tout quoi pour optimiser).
Voili, voilà tout le problème est résolu.

 

Edit: Je reviens pour mettre un code clair.
C'est bon, j'ai rectifié certain truc inutile : (menti, y a tout d'inutile  :ange: )

Code :
  1. <img src="http://pwnt.co.uk/sigs/quotes/index.php" id="banimg">
  2. <a href="" OnClick="javascript:document.getElementById('banimg').src='http://pwnt.co.uk/sigs/quotes/index.php?load='+Math.random()*500;">Rafraichir</a>
 

ou encore en ce qui te concerne :

 
Code :
  1. <img src="qap03/rotate.php" id="banimg">
  2. <a href="" OnClick="banimg.src='qap03/rotate.php?load='+Math.random()*500;">Rafraichir</a>
 

Tu peux tester : http://yarflam.web44.net/ext11/index.html  (te fis pas aux images, j'ai pris les 1ère que j'avais ^^)
Finalement tu m'as donné une idée formidable pour un de mes projets.


Message édité par cetplus le 26-02-2011 à 07:38:02
mood
Publicité
Posté le 26-02-2011 à 07:02:26  profilanswer
 

n°2059802
crasse2
Posté le 26-02-2011 à 14:55:50  profilanswer
 

wahoo !!!  :) merci merci merci gars ça marche !! en gros le principe c'est de multiplier le resultat de rotate.php par un coeff en random donc différent a chaque fois qu'il est appelé ?

n°2059858
cetplus
Wazard dans l'ombre
Posté le 27-02-2011 à 07:48:30  profilanswer
 

crasse2 a écrit :

wahoo !!!  :) merci merci merci gars ça marche !! en gros le principe c'est de multiplier le resultat de rotate.php par un coeff en random donc différent a chaque fois qu'il est appelé ?

 

De rien  :)
C'est pas un coeff, c'est une variable bidon qui sert à recharger l'image; mais oui c'est ça.


Message édité par cetplus le 27-02-2011 à 07:52:03

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  "re-executer " un script php via un bouton html

 

Sujets relatifs
Script batchHierarchiser submit et onclick (pour un même bouton)
Script MSDOS[HTML/CSS/Javascript/(php ?)] Widget sidebar
Créer un agent Lotus script permet de créer un nouveau mémo avec une P[Microsoft Visual Studio 2008]Exécuter une requête avec une base ACCES
apprentissage tableau html soucisstream de webcam avec un script en batch
Mon script est-il correct ? 
Plus de sujets relatifs à : "re-executer " un script php via un bouton html


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR