Partage
  • Partager sur Facebook
  • Partager sur Twitter

Besoin d'aide Ajax

Envoi de données contenus dans une textbox en POST

Sujet résolu
    26 novembre 2010 à 17:04:14

    Bonjour,

    Je suis ultra débutant en Ajax, et je voudrais envoyer Par la méthode POST avec Ajax le contenu d'une textbox.

    J'arrive à envoyer des données en POST en faisant comme dans le Tutoriel Ajax :

    xhr.open("POST", "ajax_ask.php", true);
    	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    	xhr.send("variable1=sUrl");
    

    Mais la je défini la variable1=sUrl mois même, donc sa n'a aucun intérêt dans mon cas.

    Voici mon code :

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>Techniques AJAX - XMLHttpRequest</title>
    <script type="text/javascript">
    <!-- 
    var xhr
    function sendAjaxResquestAsync(sUrl) {
    	xhr=null
    	if (window.XMLHttpRequest) { // netscape (mozilla,FF,webkit,opera)
    		xhr = new XMLHttpRequest()
    	} else if (window.ActiveXObject) { // IE (>=5, >5.5)
    	   	xhr = new ActiveXObject("Microsoft.XMLHTTP")
    	}
    	
    	xhr.onreadystatechange = function(){ 
    		if(xhr.readyState == 1){
    			// document.getElementById("output2").innerHTML += "connexion établie<br />";
    		}
    		if(xhr.readyState == 2){
    			// document.getElementById("output2").innerHTML += "requête reçue<br />";
    		}
    		if(xhr.readyState == 3){
    			// document.getElementById("output2").innerHTML += "réponse en cours<br />";
    		}
    		if(xhr.readyState == 4){
    			// ON CONTROLE LE STATUS (ERREUR 404, ETC)
    			if(xhr.status == 200) {
    				document.getElementById("output2").innerHTML += xhr.responseText
    				document.getElementById("output2").innerHTML += "<br />"
    			}else {
    				document.getElementById("output2").innerHTML +="Error code " + xhr.status;
    			}
    		}
    	}
    	xhr.open("POST", "ajax_ask.php", true);
    	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    	xhr.send("variable1=sUrl");
    }
    //-->
    </script>
    </head>
    <body>
    <input type="text" name="text" id="text">
    	<p>
    		<button onclick="sendAjaxResquestAsync('text');">asynchrone</button>
    		<div id='output2'></div>
    	</p>
    </body>
    </html>
    


    Je voudrais que cette ligne :
    <button onclick="sendAjaxResquestAsync('text');">asynchrone</button>
    

    Envoi a la fonction sendAjaxResquestAsync le contenu de la textbox qui a pour id='text', et que cette ligne :
    xhr.send("variable1=sUrl");
    

    Envoi bien le contenu de la textbox 'text' et non pas la chaine 'sUrl' (c'est ce que sa fait actuellement)

    C'est à ce niveau la que je suis bloqué.

    Merci de votre aide
    • Partager sur Facebook
    • Partager sur Twitter
      26 novembre 2010 à 17:34:32

      xhr.send("variable1="+sUrl+""); ?
      • Partager sur Facebook
      • Partager sur Twitter
        26 novembre 2010 à 17:39:44

        Hmmmm Sa avance maintenant j'arrive à envoyer la variable sUrl de cette ligne :
        <button onclick=\"sendAjaxResquestAsync('exemple');\">asynchrone</button>
        

        Maintenant sa envoi la chaine "exemple", mais comment faire pour que cette ligne envoi le contenu de la textbox dont l'Id est 'text'(y'en à qu'une :p ).
        • Partager sur Facebook
        • Partager sur Twitter
          26 novembre 2010 à 17:57:34

          tu peux sélectionner ta textbox et utiliser l'attribut value (non je ne donne pas le code :p )
          • Partager sur Facebook
          • Partager sur Twitter

          Besoin d'aide Ajax

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown