Parametre d'une fonction javascript


dorian53
WRInaute passionné
WRInaute passionné
 
Messages: 2216
Inscription: 10 Avr 2005

Parametre d'une fonction javascript

Message le Sam Déc 30, 2006 0:19

Bonjour,

A-t-on le droit de définir une valeur par défaut dans la déclaration d'une fonction.

Code: Tout sélectionner
function getAjax(page, method = 0, params = null)


Car voici la console d'erreurs.

Erreur : missing ) after formal parameters
Fichier source : http://localhost/ajax.js
Ligne : 22, Colonne : 30
Code source :
function getAjax(page, method = 0, params = null) {


Merci.


Jeviensderio
WRInaute passionné
WRInaute passionné
 
Messages: 1340
Inscription: 29 Sep 2006

Message le Sam Déc 30, 2006 20:04

Apparemment non!

Mais JavaScript permet d'appeler une fonction avec moins d'arguments que le nombre d'arguments dans la définition.

function getAjax(page, method, params)

getAjax(x);

Il reste à définir les valeurs par défaut autrement.


dorian53
WRInaute passionné
WRInaute passionné
 
Messages: 2216
Inscription: 10 Avr 2005

Message le Dim Déc 31, 2006 23:16

Oké merci, j'ai repris l'exemple d'ici http://siddh.developpez.com/articles/ajax/#LIII à la différence que je souhaite que le résultat soit retourné et non affiché avec alert();

Le problème est que j'obtiens undefined à chaque fois.

Code: Tout sélectionner
function getXhr(){
   var xhr = null;
   if(window.XMLHttpRequest)
      xhr = new XMLHttpRequest();
   else if(window.ActiveXObject){
      try {xhr = new ActiveXObject('Msxml2.XMLHTTP');}
           catch (e) { xhr = new ActiveXObject('Microsoft.XMLHTTP'); }
   }
   else {
      alert('Votre navigateur ne supporte pas les objets XMLHttpRequest.');
           xhr = false;
   }
   return xhr;
}


Ce return ici
Code: Tout sélectionner
function getAjax(page) {
   var xhr = getXhr();
   xhr.onreadystatechange = function() {
      if(xhr.readyState == 4 && xhr.status == 200) {
         return xhr.responseText;
      }
   }
   if (method == 0)
      xhr.open('GET', page, true);
   else
      xhr.open('POST', page, true);
   xhr.send(params);
}

Code: Tout sélectionner
function test() {
   alert(getAjax('a.php'));
}


Jeviensderio
WRInaute passionné
WRInaute passionné
 
Messages: 1340
Inscription: 29 Sep 2006

Message le Lun Jan 01, 2007 12:14

Quand on utilise la méthode GET, le paramètre de send() doit être null.
Quand on utilise POST, il faut appeller aussi la méthode setRequestHeader.

Utiliser Ajax dans ces conditions est de toutes façons assez compliqué. Voir pour plus d'explications (c'est assez long):

http://www.xul.fr/xml-ajax.html

et les multiples démos.


dorian53
WRInaute passionné
WRInaute passionné
 
Messages: 2216
Inscription: 10 Avr 2005

Message le Lun Jan 01, 2007 13:25

Oké merci, je l'avais bien mis à null dans mon test.

En fait oui, ce que je veux faire ne peut fonctionner via l'ajax asynchrone...


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité