Page 1 sur 3

bouton permettant de bloquer la réactualisation auto

Posté : 02 janv. 2006, 13:15
par shen
bonjour,
je suis novice en php et en javascript, pourriez vous m'aider???

je souhaiterais faire un bouton dans ma page(écrit en php) qui à chaque clique change le libélé du bouton(raffraichissement auto ou raffraichissement manuel celon ce que le bouton va faire) et que soit sa me fait un raffraichissement automatique toutes les minutes ou m'affiche un lien pour permettre de faire le raffraichissement soit meme quand on veut de la page.

est ce possible a faire???

pourriez vous m'aider???
Merci

Posté : 02 janv. 2006, 18:15
par shen
bonjour,
si vous ne comprenez pas exactement ce que je veux faire, dites le moi j'essaierais d'etre plus précise...
Merci

En gros j'aurais un bouton avec comme libellé Raffraichissement auto et avec un click sue le bouton, le libellé changerais en raffraichissement manuel et la page serais raffraichi automatiquement. et si je click sur le bouton raffraichissement manuel (qui serais en faite le mm que précédemment mais avec un libellé différent et une fonction différente) un lien permettant le raffraichissement manuel apparaitrait. et vice versa!!!

j'espere que j'aurais été plus précise et que quelqu'un pourra m'aider!!!
Merci

Posté : 02 janv. 2006, 19:36
par Cyrano
Pour simplement changer le libelle du bouton, utilise un gestionnaire d'évènements et crée une petite fonction :
function rafraichir(valeur)
{
    var nouvelleValeur = (valeur == 'Rafraichissement manuel') ? 'Rafraichissement automatique' : 'Rafraichissement manuel';
    document.forms['id_du_formulaire'].elements['rafraichir'].value= nouvelleValeur;
}
Et dans ton bouton:
<input type="button" id="rafraichir" value="Rafraichissement automatique" onclick="rafraichir(this.value)" />
Remplace dans la fonction les index pour forms et elements par les valeur que tu utilises (si tu en as mis, sinon, ajoute les attributs id)

soucis!!!

Posté : 03 janv. 2006, 12:37
par shen
salut et merci pour ta réponse!!!

j'ai un petit soucis c'est qu'iol me met une erreur et je n'arrive pas à trouver!!!

voici ce que ça m'affiche :

Code : Tout sélectionner

Parse error: parse error, expecting `')'' in c:\dev\test\bd\serveur impression\srvimpr5\fonctionRafraichir.php on line 13
la ligne 13 correspond à : function rafraichir(valeur)

Merci pour ton aide

PS: Bonne Année tout le monde au fait!!!! :)

Posté : 03 janv. 2006, 12:40
par Cyrano
Fais donc voir le code que tu as utilisé, le message d'erreur ne correspond pas à ce que j'ai mis en exemple, l'erreur vient sûrement d'ailleurs... :-k

Posté : 03 janv. 2006, 12:46
par Truc
l'erreur vient sûrement d'ailleurs... :-k
sur que le code (javascript) a été placé en tant que code php donc sans :
<script type="text/javascript">
...
</script>

Posté : 03 janv. 2006, 13:04
par shen
salut,
ben je l'ai mis au début sans les balises script et après avec mais sa me fait la meme erreur.
Par contre je l'ai mis dans un fichier a part que je fait apel avec require .

Posté : 03 janv. 2006, 13:09
par shen
au départ : dans un fichier fonctionRafraichir.php
<?php
function rafraichir(valeur)
{
	var nouvelleValeur=(valeur=='Rafraichissement manuel')?'Rafraichissement automatique':'Rafraichissement manuel';
	document.forms['general'].elements['rafraichir'].value=nouvelleValeur;
}
?>
puis avec
<HTML>
<HEAD></HEAD>
<BODY>

 <SCRIPT type="text/JavaScript">
:
:
:
</SCRIPT>
</BODY>

</HTML>
puis dans mon formulaire :
<FORM NAME= "general" ACTION="sireimphp.php" METHOD="GET">

require ('fonctionRafraichir.php');

printf("<INPUT TYPE='button' id='rafraichir' VALUE='Rafraichissement automatique' onClick='rafraichir(this.value)'>");

Posté : 03 janv. 2006, 13:24
par Truc
la structure correcte pour le javscript,html et php est plustot:
<HTML>
<HEAD>
<SCRIPT type="text/JavaScript">

    *** insertion fonctions javascript ***

</SCRIPT>
</HEAD>
<BODY>

  *** insertion code formulaire (HTML) ***

<?php   

   *** code php *** 

?>

</BODY>

</HTML>
donc la fonction javascript n'est pas placée au bon endroit et endehors des balises <SCRIPT> et </SCRIPT>, ça ne peut pas fonctionner :wink:
<HTML>
<HEAD>
<SCRIPT type="text/JavaScript">
function rafraichir(valeur)
{ 
    //ici code de la fonction
}
</SCRIPT>
</HEAD>
<BODY>
  <FORM NAME= "general" ACTION="sireimphp.php" METHOD="GET">
  <INPUT TYPE='button' id='rafraichir' VALUE='Rafraichissement automatique' onClick='rafraichir(this.value)'>

</BODY>

</HTML>
tu n'as pas besoin de passer par le php pour afficher le bouton, si tu peux éviter de tout afficher avec echo ou printf alors il vaut mieux le faire :wink:

Posté : 03 janv. 2006, 13:24
par Cyrano
Dans le troisième extrait, je ne vois pas de balise PHP <?php ni ?> ... :-k

Posté : 03 janv. 2006, 13:46
par shen
désolé je n'ai pas l'habitude .
En faite mon code dans fonctionRafraichir.php je l'ai mis comme vous l'avez notez, je l'avais testé dans HEAD et dans BODY.
<HTML> 
<HEAD> 
<SCRIPT type="text/JavaScript"> 
<?php 
function rafraichir(valeur) 
{ 
    var nouvelleValeur=(valeur=='Rafraichissement manuel')?'Rafraichissement automatique':'Rafraichissement manuel'; 
    document.forms['general'].elements['rafraichir'].value=nouvelleValeur; 
} 
?> 
</SCRIPT> 
</HEAD>


j'ai trouvé j'avais mis <?php ?> dans le script

sinon pour la troisieme partie, je l'ai inséré dans une page que j'ai faite et il y a du code HTML et du code PHP :

donc en début j'ai
<HTML>
<HEAD></HEAD>
<BODY>
<FORM NAME= "general" ACTION="sireimphp.php" METHOD="GET"> 

<?php

require ('fonctionRafraichir.php'); 

printf("<INPUT TYPE='button' id='rafraichir' VALUE='Rafraichissement automatique' onClick='rafraichir(this.value)'>"); 
?>
voilà mais maintenant mon bouton s'affiche mais le libellé ne change pas!!!
je zyeute!!!

Posté : 03 janv. 2006, 14:00
par Cyrano
Bon, il y a un problème : la fonction est en JavaScript, et non en PHP, donc les balises PHP n'ont pas nécessairement lieu d'être. D'autre part, tu pointais sur un identifiant de balise form inexistant: l'attribut name et l'attribut id n'ont pas la même signification et par rapport à ce que j'avais indiqué à la base, il fallait utiliser l'attribut id. Je te signale en outre que si tu convertis un jour ton code en XHTML, l'attribut name sera interdit dans la balise <form> : voici le système fonctionnel sur une page unique en XHTML:
<?xml version="1.0" encoding="iso-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<script type="text/javascript">
/* <![CDATA[ */
function rafraichir(valeur)
{
    var nouvelleValeur = (valeur=='Rafraichissement manuel') ? 'Rafraichissement automatique' : 'Rafraichissement manuel';
    document.forms['general'].elements['bouton'].value = nouvelleValeur;
}
/* ]]> */
</script>
</head>
<body>
<form id="general" action="sireimphp.php" method="get">
  <input type="button" id="bouton" value="Rafraichissement automatique" onclick="rafraichir(this.value)" />
</form>
</body>
</html>

Posté : 03 janv. 2006, 15:55
par shen
oui j'avais vu pour les <?php et ?> qu'il ne fallait pas mettre !!!

maintenant mon bouton s'affiche bien, j'ai changé le name en id mais en cliquant sur mon bouton le libellé ne change pas!!!

je sais je suis chiante, je n'arrive pas à comprendre pourquoi sa marche pas!!!

merci de votre aide

Posté : 03 janv. 2006, 16:08
par Cyrano
As-tu testé mon script tel quel ?

Posté : 03 janv. 2006, 16:12
par shen
oui oui je l'ai testé tel quel et c'est pareil!!!
en bas de la page il m'indique erreur sur la page je ne sais pas si ya un rapport!!!