Changer l' "action" d'un formulaire en javascript

Eléphant du PHP | 96 Messages

08 juin 2006, 16:23

Bonjour tout le monde !

J'ai un petit soucis... mon code refuse de fonctionner...

Alors je me tourne vers les pros que vous êtes :D
<form method="post" id="form1" name="form1" action="main.php">
<select name="userchoice" onchange="submit()">
... ... ...
</select>
</form>
<img class="it" src="images/it.jpg" alt="IT" id="it" align="left" onmouseover="it.src='images/it2.jpg'" onmouseout="it.src='images/it.jpg'" onclick="form1.action='it.php' ; window.navigate('it.php'); home.src='images/it2.jpg'"  />
Et devinez quoi... tout fonctionne sauf mon "form1.action='it.php' "

quand je fais mes tests, je clic sur mon image IT, je vais bien ou je dois aller, il m'affiche toutes mes données mais... ne modifie pas mon "action"...
Quand je regarde dans la source il reste sur action="main.php"

Qq1 saurait pourquoi il refuse de fonctionner ??

Merciiii
-==@ Tessaï @==-

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

08 juin 2006, 16:41

"form1" tout court ne désigne pas ton formulaire (sauf éventuellement sous IE je pense). Pour le récupérer il faut récupérer l'objet Form à partir de l'identifiant, avec document.getElementById("form1").

Ensuite je ne connais pas window.navigate, qu'est censée faire cette fonction ?

Eléphant du PHP | 96 Messages

08 juin 2006, 16:52

window.navigate va juste ouvrir ma page "it.php" dans la mem fenetre si mes souvenirs sont bons... mais ça, ça fonctionne ;)

Par contre j'ai essayé
onclick="document.getElementById("form1").action='it.php' ... "
Et ça ne fonctionne pas... il me tape un "Syntax error" je dois le mettre dans un variable ou koi ?
-==@ Tessaï @==-

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

08 juin 2006, 17:26

Tu utilises des guillemets doubles après onclick=, donc quand tu utilises à nouveau des guillemets doubles dans getElementById(), forcément ça ne marche pas ;)

Utilise 'form1' au lieu de "form1".

Eléphant du PHP | 96 Messages

09 juin 2006, 08:39

Suis-je bête...

Je n'ai plus de message d'erreur maintenant mais ça ne fonctionne toujours pas...

Y-aurait-il moyen de vérifier que si la commande est bien passée ?
-==@ Tessaï @==-

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

09 juin 2006, 09:21

Quand je regarde dans la source il reste sur action="main.php"
La source ne changera plus tu ne vera donc pas le changement visuellement :wink:
Y-aurait-il moyen de vérifier que si la commande est bien passée ?
un
alert(document.getElementById("form1").action)
juste après le changement

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 96 Messages

09 juin 2006, 10:00

Ben vi... il me sort un "main.php" ce qui me conforte dans mon problème :cry:

Mais pourquoi diable ne veut il pas changer mon "action" ??


EDIT :

Oué bon... je viens de me rendre compte que à chaque fois que je recharge une page... je fais un include de mon header qui est donc... ré-initialisé...

Bref... je dois trouvé un autre solution :lol:

Sorry pour le dérangement :roll:
-==@ Tessaï @==-