[Résolu] Problème de variable qui veut pas sortir d'une fonction.

Problème de variable qui veut pas sortir d'une fonction. [Résolu] - HTML/CSS - Programmation

Marsh Posté le 28-02-2008 à 18:32:17    

B'jour tout l'monde !
 
Alors voilà, j'ai besoin de JavaScript dans une appli que je developpe en ce moment.
Voilà mon problème :
 

Citation :

<script type="text/javascript">
function makeRequest(id) {
  var httpRequest = false;
    if (window.XMLHttpRequest) {
      httpRequest = new XMLHttpRequest();
      if (httpRequest.overrideMimeType) {
        httpRequest.overrideMimeType('text/xml');
      }
    } else if (window.ActiveXObject) {
      try {
        httpRequest = new ActiveXObject("Msxml2.XMLHTTP" );
      } catch (e) {
        try {
          httpRequest = new ActiveXObject("Microsoft.XMLHTTP" );
        } catch (e) {}
      }
    }
 
        if (!httpRequest) {
            alert('Abandon : ( Impossible de créer une instance XMLHTTP');
            return false;
        }
        httpRequest.onreadystatechange = function() { alertContents(httpRequest); };
        httpRequest.open('POST', 'index.php?action=synx&subaction=config', false);
        httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        httpRequest.send('id='+id);
}
function alertContents(httpRequest) {
  if (httpRequest.readyState == 4) {
    if (httpRequest.status == 200) {
      var donnee = httpRequest.responseText;
      return donnee;
    } else {
      alert('Un problème est survenu avec la requête.');
    }
  }
}
 
function getModif(id) {
global
document.getElementById(id).type='text';
makeRequest(id);
document.getElementById(id).value=donnee;
}
</script>


 
La fonction getModif est appelé comme celà :
 

Citation :

<input id="url" name="url" type="button" value="Cliquez pour modifier l'URL" onClick="getModif('url')" />


 
Normalement, lorsqu'on clique sur le champs, il se transforme et à l'intérieur, apparaît une données (ici une URL).
La requête AJAX fonctionne mais le problème, c'est que je n'arrive pas à récupérer l'URL pour la mettre dans le champs (j'ai du mal m'y prendre dans ma fonction getModif).
Je vois vraiment pas comment faire pour que la variable donnee devienne "global" (si là est le problème).
 
Merci d'avance.


Message édité par Paracetamol le 29-02-2008 à 13:36:07

---------------
Be Free, Be Linux, Be Penguin !
Reply

Marsh Posté le 28-02-2008 à 18:32:17   

Reply

Marsh Posté le 28-02-2008 à 21:16:48    

euh tu envoies a ta fonction la string 'url' la [:pingouino]
onClick="getModif(this.id)"
et t as pas besoin de passer par des globales degueu
de toute facon tu sais pas le faire...

 

edit : ok j ai mal lu désolé pour l agression mais c est tres mal de passer directement l id
ta variable qui n ets pas globale c est donnee donc
tu supprimes cette ligne dans getModif
document.getElementById(id).value=donnee;

 

et dans ton ready state tu remplaces

 

     var donnee = httpRequest.responseText;
      return donnee;

 

par
document.getElementById(id).value = httpRequest.responseText;


Message édité par mIRROR le 28-02-2008 à 21:21:31

---------------
« The enemy is the gramophone mind, whether or not one agrees with the record that is being played at the moment. » — George Orwell
Reply

Marsh Posté le 29-02-2008 à 13:35:48    

Youhou merci beaucoup ça marche !
 
Je précise au passage que je n'aime vraiment pas le JS, que pour moi c'est une bous* infame mais que celà aidera à améliorer l'interactivité de mon application, je m'y suis mis et là j'étais bloqué.
 
Merci encore :)


---------------
Be Free, Be Linux, Be Penguin !
Reply

Marsh Posté le 29-02-2008 à 14:20:26    

le js ca pootre severe [:mmmfff]


---------------
« The enemy is the gramophone mind, whether or not one agrees with the record that is being played at the moment. » — George Orwell
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed