Page 1 sur 1

Envoyer une varibale vers la même page.

Posté : 04 mai 2007, 20:01
par code3
Bonjour tout le monde,

J'ai un problème lors de l'envoie de la valeur d'un champs de texte avec javascript/AJAX vers la même page PHP. Je m'explique :
En faite ma page contient un simple formulaire avec un champ de texte simple et deux boutons, l'un est un simple (Add) l'autre un submit (Submit). Je veux sauvegarder la valeur saisie dans le champ de texte à chaque fois que je clique sur le bouton Add sans que je charge la page, une fois terminé j'affiche la totale avec le bouton submit.

j'ai essayé ceci :
<?php
	$vals= "Values :<br>" ;
        
        if(isset($_GET['value']))
        {
              $vals.= $_GET['value']."<br>" ;
        }
        
        if(isset($_POST['send']))
        {
              echo $vals ;
        }
?>
<html>
<head>
<script language="javascript'>

function getXMLHTTPRequest(){
	try 
	{req = new XMLHttpRequest();} 
	catch(err1) 
	{
	  try 
	  {req = new ActiveXObject("Msxml2.XMLHTTP");} 
	  catch (err2) 
	  {try {
			req = new ActiveXObject("Microsoft.XMLHTTP");alert("ici");
	    } 
		catch (err3) 
		{
	      req = false;
	    }
	  }
	}
	return req;
}

var http = getXMLHTTPRequest();
function addValue(valeur)
{
	var myurl = "<?php echo $_SERVER['PHP_SELF'] ; ?>";
	myRand = parseInt(Math.random()*999999999999999);
	var modurl = myurl+"?value="+valeur+"&rand="+myRand+"&sid="+<?php echo SID ?>;
	http.open("GET", modurl, true);
	http.onreadystatechange = useHttpResponseAdd;
	http.send(null);
}

function useHttpResponseAdd() 
{
   if (http.readyState == 4) 
   {
	    if(http.status == 200) 
		{	       
	       document.getElementById('done').innerHTML = "value added";
	    }
  } 
	else 
	{
		document.getElementById('done').innerHTML = '<img src="add.gif">';
	}
} 
</script>
</head>
<body>
<form method="POST" action ="<?php echo $_SERVER['PHP_SELF'] ; ?>">
<input type="text" id="txtField"><div id="done"></div>
<input type="button" value="Add" onClick="javascript:addValue(document.getElementById('txtField').value);">
<input type="submit" value="Submit" name="send"> 
</body>
</html>
Merci pout votre aide :)

Posté : 05 mai 2007, 09:30
par guilt92
Pourquoi faire simple quand on peut faire compliqué... :wink:

Ne serait ce pas plus facile dans ton cas de créer un champ caché (hidden) qui accumule les valeurs entrées et lorsque l utilisateur submit ca les insere dans la base de données ?

Je ne sais pas exactement ce que tu cherches a faire mais je pense que c'est une solution possible...

quelque chose de ce genre :
<form method="POST" action ="<?php echo $_SERVER["PHP_SELF"]; ?>">
<input type="text" id="txtField"><div id="done"></div> 
<input type="button" value="Add" onClick="vals.value += txtField.value+'<br/>'; txtField.value='';"/> 
<input type="submit" value="Submit" name="send"/>  
<input type="hidden" name="vals" value=""/>
</form>
Ensuite après le submit tu n'as plus qu'a récupérer $_POST["vals"] qui contient toutes les valeurs...

J espere que ca t aidera...

Posté : 05 mai 2007, 10:33
par code3
Est-ce que tu peux me tirer les oreilles? :axe: