11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

J'espere deja que personne n'a eu ce probleme, enfin mes recherches n'ont pas abouties, donc j'espere juste pas passer pour un boulet en faisant un doublon...

J'ai un formulaire qui sert a modifier un fichier txt grace a une page php appellée par XMLHttpRequest donc quand on soumet le formulaire, si le javascript marche, on utilise la fonction Ecrire qui va appeler la page.php et modifier ce fichier txt. On a donc pas besoin d'aller sur la page de traitement du formulaire et donc on annule la soumission du formulaire.

j'ai donc ce code pour le formulaire:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<script type="text/javascript" src="http.js"></script>
</head>

<body>
<form name="formulaire" action="page.php" method="POST" id="formulaire">
<fieldset>
Que voulez vous marquer?<br/>
<input type="text" name="pwet" />
<input type="submit" name="submit" value="ok"/>
</fieldset>
</form>
<a href="pwet.txt" onclick="window.open(this.href, 'pwet.txt', 
'menubar=0; toolbar=0; height=400px; width=500px;'); return false;">
Voir le fichier pwet.txt</a>

<p id="par">En attente de resultats</p>
</body>
</html>


et celui ci, pour le javascript (juste la partie qui nous interesse):
function Ecrire()
{
  return !XML_request('POST', 'page.php', 'pwet='+document.formulaire.pwet.value, 'par');
}


window.onload = function()
{
  document.forms['formulaire'].onsubmit = Ecrire;
}


quand ca marche, Ecrire renvoie false, donc la soumission est annulée sauf que ca ne marche que sous Firefox et pas sous IE Smiley sweatdrop

voila si quelqu'un a la solution, je suis preneur...
Merci!

<Edit de mpop : attention à bien mettre en forme le code cité à l'aide des balises adéquates. En cas d'erreur, le bouton d'édition en haut à droite de chaque message permet d'apporter des modifications. />
Modifié par Beno@ (17 Sep 2006 - 13:51)
en fait, sous IE, le formulaire se valide et il envoie donc sur la page de script donc la requette xhr ne semble pas utilisée avant l'envoie du formulaire Smiley confus

je viens de m'en appercevoir...
Curieux...
As-tu essayé d'accéder à ton formulaire des façons suivantes :
1. document.getElementById
2. document.getElementsByName
3. document.getElementsByTagName
4. document.forms avec index numérique
5. document.forms en utilisant le tableau associatif
6. document.all
7. document.nom_du_formulaire

A priori ça ne devrait pas changer, mais essaie toujours, on ne sait jamais. Parfois, IE est foncièrement stupide.
Teste avec une simple alert...
merci beaucoup d'avoir passer du temps sur mon probleme, ca été réglé Smiley smile

enfait il était du au fait que le code est separé en 2: une partie IE et une partie FF (enfin les autres quoi) et il y avais une erreur dans la partie IE qui a fait que la fonction ne retournait jamais false avec IE Smiley confus

ca marche tres bien en local sauf que, sur internet (serveur free) internet explorer ne fonctionne pas (alors qu'en local tout fonctionne avec IE) Smiley sweatdrop

je te donne la page: http://benoit.hanotte.free.fr/xhr/
sous IE le loader ne disparait pas et le flux ne s'afffiche pas Smiley decu
en local tout marche pourtant! c'est comme si ma fonction Inserer n'etait pas appellée

[code]function Inserer(response)
{
document.getElementById('content').innerHTML = response;
Loader(false);
//alert('loader: false');

}[code]
Modifié par Beno@ (17 Sep 2006 - 21:40)