Bonjour tout le monde,

J'ai un problème pour appeler mon formulaire via javascript.

voici le code de mon form :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
<form action="authentification.php" method="post" name="form1" target="_blank" id="form1">
Je fais ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
 document.form1.submit();
Mais j'obtiens une erreur que voici :

[Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMHTMLFormElement.submit]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: http://localhost/login/Check_identifiants.js :: anonymous :: line 40" data: no]
[Break on this error] document.form1.submit();
J'utilise AJAX juste pour me retourner 0 ou 1 (1 si les identifiants sont correctes) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
function getXhr()
	{
    	var xhr = null; 
		if(window.XMLHttpRequest) // Firefox et autres
		xhr = new XMLHttpRequest(); 
		else if(window.ActiveXObject){ // Internet Explorer 
		   try {
				xhr = new ActiveXObject("Msxml2.XMLHTTP");
			    } catch (e) {
			    xhr = new ActiveXObject("Microsoft.XMLHTTP");
			    }
			}
			else { // XMLHttpRequest non supporté par le navigateur 
			   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
			   xhr = false; 
			} 
              return xhr;
	}
 
function check_identifiants(matricule,login,mdp)
{
 
	//alert(Login);
	//ici, on utlise de l'ajax sans écrire quoi que ce soit dans la page, on ne fait qu'appeler du php sans faire de refresh 
 		//cette varaible récupere les 5 premiers caracteres du code de confirmation afin d'afficher que les 5 premiers caracteres (mesure de sécurité)
		var xhr = getXhr();
		xhr.onreadystatechange = function()
		{
			if(xhr.readyState == 4 && xhr.status == 200)
			{
				leretour = xhr.responseText;
				alert(leretour);
				if(leretour == 0)
				{
					document.getElementById('td_gif_identifiants_nok').innerHTML = '<img src="../Images/delete-user-icon.jpg" />';
					document.getElementById('td_texte_identifiants_nok').innerHTML = 'identifiants incorrects !';
				}
				else //si les identifiants sont ok, je lance le formulaire
				{
					document.form1.submit();
				}
 
 
			}
		}
 
 
	//alert(categorie);
 		//j'appelle la page Update_Cloture.php pour mettre a jour la table cours (cloture)
		xhr.open("POST","../Scripts/Utilisateur/check_identifiants.php",true);
		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		xhr.send("matricule="+matricule+"&login="+login+"&mdp="+mdp);
 
 
 
}
le code PHP :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php 
include('../connexion.php');
 
$LeMotDePasseCrypte = sha1($_POST['mdp']);
 
$req = "SELECT professeurs.MATRICULE_PROF, professeurs.LOGIN2, professeurs.CODE_CONFIRMATIION FROM professeurs WHERE MATRICULE_PROF = '".$_POST['matricule']."' AND LOGIN2 = '".$_POST['login']."' AND MDP2 = '$LeMotDePasseCrypte' ";
 
$query = mysql_query($req);
 
$nombre = mysql_num_rows($query);
 
if ($nombre < 1)
{
        echo '0';
}
else
{
        echo '1';
}
?>
Je ne comprends pas pourquoi cela ne fonctionne pas.

Merci d'avance pour votre aide.

beegees