11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous...
Je ne suis pas du tout un adapte du JavaScript mais bon, j'ai eu envie de m'y frotter... à tord ???
Voilà le souci : J'ai un formulaire et je souhaiterai envoyer les données du formulaire vers une page de traitement. Le problème survient quand je dois récolter les données. Impossibilité de toutes les récolter. Je n'y arrive qu'avec une seule donnée.
function sendData(param, page)
	{
		if(document.all)
		{
			//Internet Explorer
			var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
		}
		else
		{
		    //Mozilla Firefox
			var XhrObj = new XMLHttpRequest();
		}

		var content = document.getElementById("contenu");
		
		XhrObj.open("POST", page);

		
		XhrObj.onreadystatechange = function()
		{
			if (XhrObj.readyState == 4 && XhrObj.status == 200)
				content.innerHTML = XhrObj.responseText ;
		}

		XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		XhrObj.send(param);
	}
salut,

tu dois avoir un truc du style param='nom='+le nom du champ correspondant du formulaire+'&adresse='+le nom du champ du formulaire correspondant à l'adresse'

Ensuite dans ta page appelée tu fais un if(isset($_POST['tavariable'])) pour récolter les variables.

@+
Modifié par david_monchy (12 Jun 2006 - 16:38)
En fait, plus loin dans la page, j'ai mon formulaire :
echo "<form method='POST' action='resrecherche.php'>";?>   <select size="1" name="marque" OnChange="sendData('marque='+this.value,'liremar.php')" onKeyUp="sendData('id='+this.value,'liremar.php')">	

puis...
echo "<form method='POST' action='resrecherche.php'>";?>   <select size="1" name="categorie" OnChange="sendData('categorie='+this.value,'lirecat.php')" onKeyUp="sendData('id='+this.value,'lirecat.php')" >


pour le moment j'envoie les données sur une page différente. j'aimerais remplacer le "lirecat" par "liremar" mais impossible de récupérer la valeur.
Modifié par gunderau (13 Jun 2006 - 11:05)
salut,
Quelle est la donnée que tu arrive à récupérer? l'id, la catégorie, ou la marque?
Et sinon, je ne pense pas qu'il puisse y avoir de problème apparent, il suffit juste dans ton fichier liremar.php un if(isset($_POST['variable']))...
Sinon, peux-tu mettre la partie de ce fichier ou tu récupères les variables?
LA donnée que je récupère est la marque. Lorsque je fais if(isset($_POST['categorie'])) avec un echo $_POST ['categorie'], il ne connait pas catégorie.

<?php
header('Content-type: text') ; 
 require("connect.php");
// test des POST emis
if(isset($_POST['marque'])){
echo "ok1";

if(isset($_POST['categorie'])){
echo $_POST['categorie']; 
    $rq="Select count(id) AS nb FROM vehicule where marque='$_POST[marque]' AND categorie='$_POST[categorie]' ";
    $result= mysql_query ($rq) or die ("Select impossible2");
     // $i = initialise le variable i
    while($donnees = mysql_fetch_array($result))
	{
	echo "<font color=#FFFFFF>Il reste ".$donnees['nb']." vehicule(s) disponible(s)</font>";
	
	}
}}

Modifié par gunderau (14 Jun 2006 - 11:44)
et si tu fais un alert(this.value) juste avant d'appeler la fonction senddata, est-ce que a chaque fois this.value correspond bien à une valeur? Car si this.value est vide, comme les données sont en post, la variable $_POST['variable'] n'existe pas. Sinon essaye avec la méthode GET et fais la même chose. La, j'avoue que je ne vois pas trop l'erreur... Smiley decu
Je suis certain que $_POST['categorie'] n'est pas vide car lorsque je valide mon formulaire j'arrive sur la page des résultats. et elle fonctionne tres bien ! Et avec GET plus rien ne fonctionne. Je suis désespéré, ça va faire 1semaine que je suis dessus. C'est pour ça que j'essaie de poster mon problème sur des forums mais il n'y a pas foule pour répondre. A croire qu'AJAX fait peur !!! Smiley smile
je suis vraiment désolé, mais la je ne vois vraiment pas la solution à ton problème... C'est vrai qu'AJAX fait peur, et que très peu de personnes répondent sur les forums (j'ai été confronté au même problème que toi), et c'est pour cela que maintenant j'essaie d'aider au mieux ceux qui galèrent sur de l'AJAX. Ne perd pas espoir et fait un méga déboggage avec des alert() partout (j'ai réussi à trouver mon erreur grace à cette méthode).
Bonne journée
David