problème settimeout

Eléphant du PHP | 101 Messages

13 déc. 2006, 12:50

voila je commence tout juste en java script mais j'ai un problème avec setTimeout.

Voila ce que je fais:

Code : Tout sélectionner

function test(id){ var ch=document.getElementById(id).innerHTML; document.getElementById(id).innerHTML="<img src=\"progress_loading.gif\"> Enregistrement de l'élément."; setTimeout('test2('+ch+')',4000); } function test2(){ document.getElementById("form").innerHTML=ch; }
et rien ne se passe au bout de 4 seconde a par l'erreur XML tag name mismatch (expected input) qui apparait dans la console javascript

Merci d'avance pour votre aide
THOMAS
Voir mes projets sur mon BLOG

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

13 déc. 2006, 13:13

Dans la déclaration de ta fonction test2, il te faut spécifier qu'elle accepte un paramètre pour pouvoir le récupérer et l'utiliser :

Code : Tout sélectionner

function test2(ch){ document.getElementById("form").innerHTML=ch; }
:)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 101 Messages

13 déc. 2006, 13:50

Dans la déclaration de ta fonction test2, il te faut spécifier qu'elle accepte un paramètre pour pouvoir le récupérer et l'utiliser :

Code : Tout sélectionner

function test2(ch){ document.getElementById("form").innerHTML=ch; }
:)
ouai mais meme en changant ça j'ai tjs la meme erreur :s
Voir mes projets sur mon BLOG

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

13 déc. 2006, 14:10

Et dans ton document, tu as bien un élément dont l'identifiant est id="form" ?
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 101 Messages

13 déc. 2006, 22:33

oui oui
voila comment est structuré le HTML :

Code : Tout sélectionner

<html> <head> <script language="javascript" src="fonction.js"></script> </head> <body> <div id="form"><form> Nom: <input name="nom"> Commentaire : <textarea name="txt_comm"></textarea> <input type="button" value="Enregistrer" onClick="test('form')"> </form> </div> </body> </html>
Voir mes projets sur mon BLOG

ViPHP
ViPHP | 1961 Messages

14 déc. 2006, 01:30

Bonsoir,

J'ai pas testé, mais ceci devrait fonctionner (si j'ai bien compris ce que tu cherches à faire)
Fichier HTML
<html>
<head>
<script type="text/JavaScript" src="fonction.js"></script>
</head>
<body onload="chargeCodeForm()">
<div id="form"><form name="my_form" action="" method="">
Nom: <input type="text" name="nom">
Commentaire : <textarea name="txt_comm"></textarea>
<input type="button" value="Enregistrer" onClick="test('form')">
</form>
</div>
</body>
</html>
Le fichier JS

Code : Tout sélectionner

var ch; function chargeCodeForm(){ ch = document.getElementById('form').innerHTML; } function test(id){ document.getElementById(id).innerHTML='<img src="progress_loading.gif" alt="" /> Enregistrement de l\'élément.!'; setTimeout('test2()',4000); } function test2(){ document.getElementById('form').innerHTML=ch; }
EDIT : Tu peux simplifier ton code JS comme ceci

Code : Tout sélectionner

var ch; function chargeCodeForm(){ ch = document.getElementById('form').innerHTML; } function test(id){ document.getElementById(id).innerHTML='<img src="progress_loading.gif" alt="" /> Enregistrement de l\'élément.!'; setTimeout('document.getElementById("form").innerHTML=ch;',4000); }
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein