IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[AJAX] marche pas sous firefox


Sujet :

JavaScript

  1. #1
    Membre éclairé Avatar de kaking
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 753
    Par défaut [AJAX] marche pas sous firefox
    bonjour tous le monde

    alors voila, j ai mon ajax qui marche sous internet exploreur mais pas sous firefox!

    pourtant, quand on tape un mot dans le champs, une recherche s'effectue bien dans la base de donnee et affiche le mot qui ressemble le plus a ce qui est ecrit grace a l'ajax que ce soit sous firefox ou sous internet exploreur...

    mais sous firefox, si je valide le formulaire, la variable ne passe pas!!!

    alors je sais pas pourquoi ce ne marche pas....

    mon formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <input type="text" name="pseudo"
      onKeyUp="verifPseudo(this.value,'verif_mer_entreprise.php')" />
    <div id="pseudobox"></div>
    ma fonction verifpseudo (inclus dans un fichier)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    <script type='text/javascript'> 
    function verifPseudo(pseudo,fichier_called)
    {
    	if(pseudo != '')
    	{
    		if(pseudo.length<2)
    		writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b>ce nom est trop court</span>');
    		else if(pseudo.length>30)
    		writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce nom est trop long</span>');
    		else if(texte = file(fichier_called+'?pseudo='+escape(pseudo)))
    		{
    	writediv(texte);
    		}
    	}
    }
     
     
    function writediv(texte)
    {
    	document.getElementById('pseudobox').innerHTML = texte;
    }
     
    function file(fichier)
    {
    	if(window.XMLHttpRequest) // FIREFOX
    	xhr_object = new XMLHttpRequest();
    	else if(window.ActiveXObject) // IE
    	xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    	else
    	return(false);
    	xhr_object.open("GET", fichier, false);
    	xhr_object.send(null);
    	if(xhr_object.readyState == 4) return(xhr_object.responseText);
    	else return(false);
    }
     
    var xhr = null; 
     
    function getXhr()
    {
    	if(window.XMLHttpRequest) // Firefox et autres
    		xhr = new XMLHttpRequest(); 
    	else if(window.ActiveXObject)
    	{ // Internet Explorer 
    		try {xhr = new ActiveXObject("Msxml2.XMLHTTP");} 
    		catch (e) { xhr = new ActiveXObject("Microsoft.XMLHTTP");}
    	}
    	else 
    	{ // XMLHttpRequest non supporté par le navigateur 
    		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    		xhr = false; 
    	} 
    }
    </script>
    et enfin la page verif_mer_entreprise.php qui est appelée...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    $result = mysql_query("SELECT num,rs, ville  FROM entreprise_crci WHERE rs LIKE '%".$_GET["pseudo"]."%'");
    $nombreligne = mysql_num_rows($result);
     
    echo "<select size='$nombreligne' name='num_entreprisemer' class='corps'>";
    $k = 0;
    while ($k<$nombreligne)
    {
    $num_entreprise = mysql_result($result,$k,"num");
    $raison_sociale = mysql_result($result,$k,"rs");
    $ville = mysql_result($result,$k,"ville");
     
    if ($k==0)
    {
    echo"<option selected value='$num_entreprise'>$raison_sociale - $ville</option>";
    }
    else
    {
    echo"<option value='$num_entreprise'>$raison_sociale - $ville</option>";
    }
     
    $k++;
    }
     
     
     
    echo "<\select>";
    si vous pouviez me dire ce qui ne va pas siouplais....merci!

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    ça passerait pas mieux avec

    A+

  3. #3
    Membre éclairé Avatar de kaking
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 753
    Par défaut
    ....merci mais non, ca marche pas mieux....

    j'ai meme isolé la 3eme partie du code avec le select pour voir si ca causait un probleme sous firefox sans ajax et non ca marche! donc la partie du select marche!

    le plus etonnant c est que meme sous firefox le script fonctionne -c est a dire que quand tu tapes une lettre dans le champs, une recherche s'effectue dans la bdd et affiche tous les mots qui contiennent la lettre...il reste plus qu'a choisir quel mot tu veux et hop! tu clique sur le bouton 'envoyer' et ca s'enregistre dans la bdd....

    sauf que la, la variable $num_entreprisemer ne passe pas!!!! y'a que sous IE que ca passe.....

    help me please!

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Si tu tappes l'url appelée via Ajax (avec ses paramètres) directement dans ta barre d'adresse, ça donne quoi ?

    A+

  5. #5
    Membre Expert Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    else if(texte = file(fichier_called+'?pseudo='+escape(pseudo)))
    T'es sur que ca marche ca?

    A mon avis, ta fonction file ne peut pas te renvoyer de résultat, du moins pas celui que tu attends... Essaie de faire un alert sur ta variable texte pour voir ce qu'elle contient.

  6. #6
    Membre éclairé Avatar de kaking
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 753
    Par défaut
    he bah si je tapes verif_mer_entreprise.php dans l'url ca m'affiche une page avec un select.....

    ca m'a l'air bon jusque la....c est jusque quand je veux sauvegarder....bah c est pas possible....

  7. #7
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Essaye le test de doubleU
    Il faudrait mieux que file() renvoie toujours une string : essaye au lieu de false ...

    EDIT : tu as peut être des caractères dans la réponse qui plante la fonction writediv() vu que ça fonctionne quand tu l'utilise pas ...
    Des quotes dans les libellés, par exemple ?

    A+

  8. #8
    Membre éclairé Avatar de kaking
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 753
    Par défaut
    si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    else if(texte = file(fichier_called+'?pseudo='+escape(pseudo)))
    		{
    		alert(texte);
    j obtiens ceci en alert :

    <select size='10' name='num_entreprisemer' class='corps'>
    <option selected value='5215'>BAMAA - LONGUEAU</option>
    <option value='3179'>AARAB ERAZZI FADILA - AMIENS</option>
    <option value='2855'>BEL LAADO MUSTAPHA - AMIENS</option>
    <option value='2356'>DA CUNHA AA FRERES - AMIENS</option>
    <option value='2168'>MAAF ASSURANCES - AMIENS</option>
    <option value='1958'>AAA FRANCE CARS - AMIENS</option>
    <option value='10791'>Centre Aéré de Flixecourt - </option><\select>

    ce qui est tout a fait correct...il voit bien le select, mais le probleme surgit apres et c est ca qui me saoule.....je comprends pas pourquoi l'ajax marche mais impossible de passer la variable....en fait c est la variable $num_entreprisemer qui passe pas a cause de l'ajax j ai l'impression....


    et ca m enneeeeeeeeeeeeeeeeeeeerve

  9. #9
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Et si tu essayes un cas qui ne te ramène pas ce genre de caractères : "Aéré"

    Ca marche pas mieux ?

  10. #10
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Et remplace ce "\" qui n'a rien à faire là !!!!

  11. #11
    Membre éclairé Avatar de kaking
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 753
    Par défaut
    ha zut meme si je fais une recherche bien precise, sans accent, la variable ne passe pas en ff!!!!!!


    bon


    bah la je sais vraiment plus quoi faire...


    merci de votre aide en tout cas

  12. #12
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Et remplace ce "\" qui n'a rien à faire là !!!!
    Aucune garantie, mais ça éviterait les doutes

    A+

  13. #13
    Membre éclairé Avatar de kaking
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 753
    Par défaut
    ^^ bien sur je l ai fais desole

  14. #14
    Membre Expert Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Par défaut
    Fais voir le reste du code?

    Genre ton select est bien a l'intérieur du formulaire que tu veux sauver?

  15. #15
    Membre éclairé Avatar de kaking
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 753
    Par défaut
    bon bah je veux bien mais je vois pas ce que ca change :

    la partie du formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php include "useful_js.php";?>
    <form name="formulaire" method="post" action="situations_save.php">
    <input type="text" name="pseudo" value="<?=stripslashes($pseudo)?>" onKeyUp="verifPseudo(this.value,'verif_mer_entreprise.php')" class="corps" size="30" />
    <div id="pseudobox"></div>
    <input type='submit' value='envoyer'>
    </form>
    la partie ajax situé dans un autre fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
    <script type='text/javascript'> 
    function verifPseudo(pseudo,fichier_called)
    {
    	if(pseudo != '')
    	{
    		if(pseudo.length<2)
    		writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b>ce nom est trop court</span>');
    		else if(pseudo.length>30)
    		writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce nom est trop long</span>');
    		else if(texte = file(fichier_called+'?pseudo='+escape(pseudo)))
    		{
    			if(texte == 1)
    			writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce pseudo est deja pris</span>');
    			else if(texte == 2)
    			writediv('<span style="color:#1A7917"><b>'+pseudo+' :</b> ce pseudo est libre</span>');
    			else
    			writediv(texte);
    		}
    	}
    }
     
     
    function writediv(texte)
    {
    	document.getElementById('pseudobox').innerHTML = texte;
    }
     
    function file(fichier)
    {
    	if(window.XMLHttpRequest) // FIREFOX
    	xhr_object = new XMLHttpRequest();
    	else if(window.ActiveXObject) // IE
    	xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    	else
    	return(false);
    	xhr_object.open("GET", fichier, false);
    	xhr_object.send(null);
    	if(xhr_object.readyState == 4) return(xhr_object.responseText);
    	else return(false);
    }
     
    var xhr = null; 
     
    function getXhr()
    {
    	if(window.XMLHttpRequest) // Firefox et autres
    		xhr = new XMLHttpRequest(); 
    	else if(window.ActiveXObject)
    	{ // Internet Explorer 
    		try {xhr = new ActiveXObject("Msxml2.XMLHTTP");} 
    		catch (e) { xhr = new ActiveXObject("Microsoft.XMLHTTP");}
    	}
    	else 
    	{ // XMLHttpRequest non supporté par le navigateur 
    		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    		xhr = false; 
    	} 
    }
    </script>
    et enfin le fichier appelé -verif_mer_entreprise.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    <?
     
    include ('connection.php3');   
       ?><select size='10' name='num_entreprisemer' class='corps'><?php
    $result = mysql_query("SELECT num,rs, ville  FROM entreprise_crci WHERE rs LIKE '%".$_GET["pseudo"]."%'");
    while($f=mysql_fetch_array($result))
    {
    ?><option value='<?php echo $f['num'];?>'><?php echo $f['rs'].'-'.$f['ville'];?></option>
    <?php
    }
    echo "</select>";
     
     
     
     
    ?>

    et quand je clique sur 'envoyer' (donc je vais sur situations_save.php)
    je fais un echo 'num : '.$num_entreprisemer;

    et sur IE je vois la variable
    et pas sous ff....


    je veux mourir

  16. #16
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Tout simplement : les modifications effectuées via innerHTML ne sont pas prises en compte dans un formulaire

    Il faut que tu le modifies via le DOM

    A+

  17. #17
    Membre éclairé Avatar de kaking
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 753
    Par défaut
    HAAAAAAA

    mais...je trouve le DOM hyper compliqué!!!

    bon.....vous pourriez pas me mettre sur la piste?


    en tout cas merci beaucoup, je suis content que le probleme soit fixé!

  18. #18
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par kaking Voir le message
    bon.....vous pourriez pas me mettre sur la piste?
    C'est fait : suffit de cliquer sur le lien

    A+

  19. #19
    Membre éclairé Avatar de kaking
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 753
    Par défaut
    oups



    merci beaucoup!


    suis content!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] sondage marche pas sous firefox (lotus notes)
    Par watchabongo dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/01/2008, 10h00
  2. drag and drop march pas sous firefox+joomla!
    Par tecap dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/10/2007, 10h16
  3. fonction redimensionnement marche pas sous firefox
    Par calitom dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 11/09/2007, 14h39
  4. le ValidationSummary ASP ne marche pas sous Firefox
    Par hokidoki dans le forum ASP.NET
    Réponses: 15
    Dernier message: 16/08/2007, 10h30
  5. Fonction qui ne marche pas sous FireFox
    Par Foudébois dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 17/11/2006, 14h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo