Page 1 sur 2

bouton

Posté : 11 mars 2005, 19:23
par Arcantos
je voudrais savoir comment on fait pour executer une action php avec un bouton.
exemple: je clique sur un bouton et sa execute un code PHP sans changer de page

Posté : 11 mars 2005, 19:52
par Vincentimes
Jamais fais mais tu peux utiliser une image générée par php; ou tu executes le code avant de generer l'image; et du javascript... ou une iframe que tu recharges.

Une Iframe est une page dans une page, une sorte de textarea contenant une page.

Quand tu clics sur ton bouton, soit :
- Tu redefinis la source de ton image via une fonction javascript. Dans ce cas tu generes, via un fichier php, une image pour qu'elle s'affiche sans recharger la page, et tu mets ton code avant de generer l'image, dans le fichier qui genere cet image.
- Tu redefinis la source de ton iframe via une fonction javascript. Dans ce cas, tu recharges l'Iframe.

Tu mets tes variables dans la nouvelle url de ton image ou de l'Iframe, et le tour est joué.

Pour te donner des bases sur ma proposition...

Code : Tout sélectionner

// Objet = Id de ton Objet (img, iframe...) // Source = La source de l'Objet function Change_Source(Objet, Source) { if (document.getElementById) { document.getElementById(Objet).src = Valeur; return true; } else if (document.all && !document.getElementById) { document.all[Objet].src = Valeur; return true; } else if (document.layers) { document.layers[Objet].src = Valeur; return true; } return false; } <iframe src="pagetemp.php" style="display:none" name="IframeExec"> <!-- ou <img src="temp.php" style="display:none"> --> // Quand tu clics, la page temp.php de l'Iframe se recharge et execute ton code <input type="button" OnClick="Change_Source('IframeExec', 'pageaction.php?action=aleatoire');">
Voila, à toi de develloper...

Article qui en parle :
http://www.nexen.net/news/gen.php/2004/ ... ,0,0,0.php

Posté : 11 mars 2005, 19:58
par Arcantos
mon action depend de se qu'a taper un utilisateur dans un formulaire

Posté : 11 mars 2005, 20:27
par flitox
Tu mets dans ton formulaire

Code : Tout sélectionner

<form id="formulaire" method="post" action="$_SERVER['PHP_SELF']">
Ca traite le formulaire en te renvoyant sur la même page, ça veut donc dire que toutes tes conditions doivent être testées dans la page qui contient le formulaire.

Mais je crois que ce que tu veux faire tient plus du javascript.

Posté : 11 mars 2005, 20:31
par Arcantos
je vais essailler sa

Posté : 11 mars 2005, 20:37
par Xenon_54
Je ne vois aucunement de formulaire dans son exemple.

Posté : 11 mars 2005, 20:41
par flitox
mon action depend de se qu'a taper un utilisateur dans un formulaire
Arcantos il est où le formulaire? (pas fais gaffe)

Posté : 11 mars 2005, 20:42
par Arcantos
le formulaire est dans la meme page que mon bouton

Posté : 11 mars 2005, 20:44
par flitox
Tu peux tout mettre s'il-te-plaît?

Posté : 11 mars 2005, 20:57
par Xenon_54
Alors je crois que l'exemple de nok-I fait amplement le travail.

;)

Posté : 11 mars 2005, 21:00
par Arcantos
bon je vais expliquer
j'essaille de faire un script pur pouvoir modifier mais page HTML sur le net sans passer par un FTP

j'ai 2 pages
index ou on entre le nom de la page

Code : Tout sélectionner

<html> <head> <title>index</title> </head> <body> <form action="modif.php" methode="post"> non de la page HTML : <input name="nom" type="text"> <input type="submit" name="bouton1" value="OK"/> </form> </body> </html>
modif qui
1)regarde si le nom de la page existe, si elle existe elle l'ouvre et l'affiche dans mon formulaire, si elle existe pas elle ecrit un page classique dans le formulaire
2)elle enregistre le la page avec les modif faite dans le formulaire et le nom donné
pour le 1 j'y arrive a peu pres mais pour le 2 j'arrive pas executer le script au pressage du bouton

mon scripte pour le 1
<?php
extract($_POST);
if ( file_exists("$nom") ) {
$texte = fopen("$nom","w");
$donnees = fgets($texte,4096);
fclose($texte);
print $donnees;
} else {
touch("$nom");
print"<html>
<head>
<title>Document sans titre</title>
</head>

<body>

</body>
</html>";
}
?>

Posté : 11 mars 2005, 22:07
par Vincentimes
Arcantos,

Tu cherches à faire un système simple ou un peu plus devellopé ?

Parce que là, il y a possibilité de faire quelques choses de sympa, et vu que c'est plus ou moins d'actualité (GMail a tracé la route), je pense que cela peut interessé pas mal de monde... (si page HTML pourquoi pas créer un aperçu de ta page via un calque ? en allant chercher le contenu -pour le placer ds une textarea- à partir d'une Iframe... tu me suis ?)

Bref, à toi voir, je peux t'aider... car je n'ai jamais essayé :wink:

Posté : 12 mars 2005, 00:09
par pascaltje
Arcantos,

Tu cherches à faire un système simple ou un peu plus devellopé ?

Parce que là, il y a possibilité de faire quelques choses de sympa, et vu que c'est plus ou moins d'actualité (GMail a tracé la route), je pense que cela peut interessé pas mal de monde... (si page HTML pourquoi pas créer un aperçu de ta page via un calque ? en allant chercher le contenu -pour le placer ds une textarea- à partir d'une Iframe... tu me suis ?)

Bref, à toi voir, je peux t'aider... car je n'ai jamais essayé :wink:
tu parles d'XmlHttpRequest en javascript :D

ça marche bien, sauf que le javascript c'est dur dur! ;)

et après réflexion et utilisation pendant une semaine, je me dis que ça ressemble aux bonnes vieilles frame, mais sans les inconvénients pour l'utilisateur - juste pour le codeur si il n'est pas organisé (et je ne suis pas encore organisé sur ce point ;) )

A+

Pascal

Posté : 12 mars 2005, 11:49
par Arcantos
je cherche a fair un système simple que je vais petit a petit ameliorer

j'avais prevue d'affichier ma page dans un calque, mais je n'arrive toujours pas a enregistré ma page, donc le calque va attendre
voila mon scriptje l'ai un peu modifier par rappor a hier mais il marche toujour pas donc si on peu m'expliquer un peu plus le scrite de flitox.[/php]

Posté : 12 mars 2005, 12:06
par Vincentimes
Pas forcement d'XmlHttpRequest,

Au lieu de recharger ta page pour aller chercher le contenu de ton fichier, tu peux utiliser une Iframe en utilisant une autre page et une fonction javascript. Tu peux aussi mettre un lien Previsualiser, et tu envoies le contenu de ta textarea dans un calque.

Fonctions javascript :
Change_Source();
SendFiletoTextarea();
Change_Calque();

Comme ceci, il y a que trois fonctions et la montagne de code javascript que tu te fais n'existe pas :P