Bonjour,

Après des recherches sur le web, je n'ai pas trouvé de réponse à mon problème !
Je développe en php5, et voilà mon souci :
j'appelle la validation d'un formulaire grâce au code javascript :

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
 
function call(action, cmd, onCompleteFunction) {
	get_Xhr();
	xhr.onreadystatechange = function()  {
		alert(xhr.readyState);
		if(xhr.readyState == 4) {
			if (xhr.status == 200) {
				document.getElementById('resultat').innerHTML = xhr.responseText;
				if (onCompleteFunction != null) {
					onCompleteFunction();
				}
				return true;
			} else {
				document.getElementById('resultat').innerHTML = xhr.responseText;
				return false;
			}
		}
	}
	var formParameters = '';
	var formulaire = document.forms[0];
	for ( var i=0; i<formulaire.elements.length; i++ ) {
		var element = formulaire.elements[i];
		formParameters += "&" + element.id + "=" + encodeURIComponent(element.value);
	}
	xhr.open("POST", action, true);
	xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xhr.send('cmd=' + cmd + formParameters);
}
Dans le cas où certains champs du formulaire ne sont pas renseignés, je voudrais remonter un message d'erreur. ça c'est facile, un petit echo dans mon php et j'affiche soit un message de confirmation, ou d'erreur, que js me met ensuite au bon endroit!

mon souci, c'est de remonter un code autre que 200 (pour le xhr.status) dans le cas où mon formulaire n'est pas bon (pour savoir qu'il me faut pas vider mon formulaire par exemple!).
J'ai essayé d'utiliser la fonction header, mais sans succès ("header was already send" qu'il me dit!peut être parce que j'utilise session_start(); dans ce fichier php).
J'ai essayé de sortir de mon fichier php avec "exit (1);", "die (monMessage)", mais dans ces cas là, javascript reçoit toujours 200...

J'ai essayé de balancer une exception à partir de mon fichier php, mais dans ce cas là, un message du genre "Uncaugh exception" s'affiche, et c'est pas très joli! (dans ce cas là, j'ai pas regardé la valeur reçu par javascript)

Peut être que je fais complètement fausse route aussi quant à ma façon de gérer les formulaires!

La seule façon que je vois, c'est dans le cas d'une erreur, faire genre un echo "ERREUR".$monMessageErreur, et ensuite analyser dans javascript si le résultat renvoyé par php commence par "ERREUR", mais je trouve ça pas particulièrement propre...

Quelqu'un aurait il une idée de la façon de faire ça proprement?

Merci pour vos réponses !