Erreur de passage de paramètre dans une urL

cousinlol Messages postés 59 Date d'inscription mercredi 21 juin 2006 Statut Membre Dernière intervention 26 octobre 2015 - 24 févr. 2007 à 11:58
cousinlol Messages postés 59 Date d'inscription mercredi 21 juin 2006 Statut Membre Dernière intervention 26 octobre 2015 - 26 févr. 2007 à 09:21
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

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
24 févr. 2007 à 15:04
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        
0
cousinlol Messages postés 59 Date d'inscription mercredi 21 juin 2006 Statut Membre Dernière intervention 26 octobre 2015
24 févr. 2007 à 17:25
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
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
25 févr. 2007 à 09:51
>>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        
0
cousinlol Messages postés 59 Date d'inscription mercredi 21 juin 2006 Statut Membre Dernière intervention 26 octobre 2015
25 févr. 2007 à 12:27
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é.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
25 févr. 2007 à 14:09
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        
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
25 févr. 2007 à 14:11
    je met les try/catch dans l'ordre où je privilégie les navigateurs...
    chacun fait comme il le sent !
<hr />


Cordialement            Bul        
0
cousinlol Messages postés 59 Date d'inscription mercredi 21 juin 2006 Statut Membre Dernière intervention 26 octobre 2015
25 févr. 2007 à 15:44
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.
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
26 févr. 2007 à 05:27
>>

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        
0
cousinlol Messages postés 59 Date d'inscription mercredi 21 juin 2006 Statut Membre Dernière intervention 26 octobre 2015
26 févr. 2007 à 09:21
J'ai déjà récupéré ton return. Merci encore
0
Rejoignez-nous