Erreur de passage de paramètre dans une urL

Signaler
Messages postés
59
Date d'inscription
mercredi 21 juin 2006
Statut
Membre
Dernière intervention
26 octobre 2015
-
Messages postés
59
Date d'inscription
mercredi 21 juin 2006
Statut
Membre
Dernière intervention
26 octobre 2015
-
Bonjour,


Un problème a priori simple sur le passage de paramètre d'une url.


Voici mon code :

<!-- BEGIN TEMPLATE: bbcode_code -->

Code :

function ajouterLigne()
{
// Définition des variables a placer
var produit = document.getElementById('produit').value;
var quantite = document.getElementById('quantite').value;
// Appel du script de mise à jour de la base de données
xmlhttp.open("GET", "../ajax/ajaxAjouterLigne.php?param1="+produit+"&param2="+quantite,false);
// Affichage sur le formulaire de la ligne ajoutée
nlignes++;
ligne = document.createElement('tr');
cell = document.createElement('td');
texte = document.createTextNode(produit);
cell.appendChild(texte);
ligne.appendChild(cell);
cell = document.createElement('td');
texte = document.createTextNode(quantite);
cell.appendChild(texte);
ligne.appendChild(cell);
document.getElementById('tableau').appendChild(ligne);
}

<!-- END TEMPLATE: bbcode_code -->

Et la ligne qui me pose problème est celle-ci :

<!-- BEGIN TEMPLATE: bbcode_quote -->

Citation:
xmlhttp.open("GET", "../ajax/ajaxAjouterLigne.php?param1="+produit+"&param2="+quantite,false);

<!-- END TEMPLATE: bbcode_quote -->

avec 1 paramètre c'est bon, mais avec 2 j'ai une erreur.


Je n'arrive pas à voir pourquoi.


Merci d'avance

9 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
Bonjour,

    jamais essayé comme ici...
    j'ai toujours fait :
       xmlhttp.open("GET", "../ajax/ajaxAjouterLigne.php",false);
       xmlhttp.send("param1="+produit+"&param2="+quantite);
    à essayer ?

    et sûr du contenu de quantite ?
    quelle erreur ? avec quel navigateur ?




<hr />



Cordialement            Bul        
Messages postés
59
Date d'inscription
mercredi 21 juin 2006
Statut
Membre
Dernière intervention
26 octobre 2015

Merci,

Je suis sous FF
J'utilise Firebug pour les messages d'erreur javascript
Les valeur de produit et quantité sont bonnes, j'ai fait un affichage avec "alert" et c'est ok.
J'ai apporté la modif comme ceci :
function ajouterLigne()
{
    // Définition des variables a placer
    var produit = document.getElementById('produit').value;
    var quantite = document.getElementById('quantite').value;
    
    // Appel du script de mise à jour de la base de données
    xmlhttp.open("GET", "../ajax/ajaxAjouterLigne.php",false);
    xmlhttp.send("param1="+produit+"&amp;param2="+quantite);
    // Affichage sur le formulaire de la ligne ajoutée
    nlignes++;
    ligne = document.createElement ('tr');
    cell = document.createElement ('td');
    texte = document.createTextNode (produit);
    cell.appendChild (texte);
    ligne.appendChild(cell);
    cell = document.createElement ('td');
    texte = document.createTextNode (quantite);
    cell.appendChild (texte);
    ligne.appendChild(cell);
    document.getElementById ('tableau').appendChild (ligne);
}

J'ai le message suivant en faisant comme tu préconises :
xmlhttp is not defined
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
>>xmlhttp is not defined



    ah... et comment,où ... est définie cette variable (xmlhttp) alors ?
    tu dois avoir quelque part
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); pour IE et/ou
    xmlhttp=new XMLHttpRequest(); pour FF



<hr />



Cordialement            Bul        
Messages postés
59
Date d'inscription
mercredi 21 juin 2006
Statut
Membre
Dernière intervention
26 octobre 2015

Oups, je suis fatigué moi, j'avais oublié :

var xmlhttp = null;
  
    try
    {
       xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch(e)
    {
       try{
          xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
       }
       catch(e){
          xmlhttp = false;
       }
    }
   
    if (!xmlhttp && typeof XMLHttpRequest!='undefined')
    {
       xmlhttp = new XMLHttpRequest();
    }

C'est beaucoup mieux comme cela.

Merci beaucoup, je tounais en rond avec un cerveau embué.
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
c'est dans une autre fonction ? dans la même ?
car var xmlhttp = ...  c'est important, variable locale ou globale ?

je n'utilise pas tout à fait la même chose, mais pas testé ton script...

//~~~~~~~~~~~~~ ~ ~~~~~~~~~~~~~~~~~~~~~
function xmlhttp()    //~~ XMLHTTP ~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
    var x;
    try       {
                x = new ActiveXObject("Microsoft.XMLHTTP");
              }
    catch (e) {
                try       {
                            x = new ActiveXObject("Msxml2.XMLHTTP");
                          }
                catch (e) {
                            try       {
                                        x = new XMLHttpRequest();
                                      }
                            catch (e) {
                                        x=false;
                                      }
                          }
              }
    return x;
}

 et pour l'utiliser... " ailleurs " :

    var xml = xmlhttp();
    if(!xml)
             {
                alert("XmlHttpRequest non supporté");
             }
    else     {  ...

<hr />
Cordialement            Bul        
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
    je met les try/catch dans l'ordre où je privilégie les navigateurs...
    chacun fait comme il le sent !
<hr />


Cordialement            Bul        
Messages postés
59
Date d'inscription
mercredi 21 juin 2006
Statut
Membre
Dernière intervention
26 octobre 2015

C'est une fonction que j'appel, et pour l'ordre, je ne développe que des applicatifs intranets. Leur utilisation impose FF car les poste client sont sous linux, unix, mac, windows.

Alors il m'a fallu tranché.

Je test au début de chaque script l'utilisation de FF et je râle si ce n'est pas ça.

Mais bon de temps en temps les commerciaux chez des clients sont sous windows, alors je fais qu'en même le test.
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
>>

C'est une fonction que j'appelle...



    dans ce cas, var xmlhttp =..., ça en fait une variable locale,
       utilisable uniquement dans cette fonction, pas ailleurs.
    définie une variable globale, ou exploite le return comme dans "mon" exemple


<hr />



Cordialement            Bul        
Messages postés
59
Date d'inscription
mercredi 21 juin 2006
Statut
Membre
Dernière intervention
26 octobre 2015

J'ai déjà récupéré ton return. Merci encore