PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 20-09-2010 14:03:34

athome
Membre
Inscription : 24-06-2010
Messages : 23

problème avec xmlhttprequest et firefox

Bonjour, je viens exposer mon soucis ici wink

tout d'abord, je travail sur un formulaire, un 2eme menu déroulant dépendant du 1er et un 3eme dépendant du 2sd, il fonctionne très bien, voir les pages ci-dessous, mais il ne fonctionne que sous IE8, pas sous FF 3.6.10 !

J'ai cherché sur le web et cela proviendrait de xmlhttprequest voir du bouton submit...

Je suis débutant en php/mysql et pas de notion en java, j'aimerais des conseils sur mon problème, voir une solution wink

voici les pages dont vous auriez besoin :

ajax.js

function ajax(strthis)
{
  var param = strthis.value;
                var unite = document.getElementById("unite").options[document.getElementById("unite").selectedIndex].value;
  $("#tr_codedial").empty();
  $.ajax
  (
    {
      type: "POST",
      url: "select_codedial.php",
      data: "var="+param,
      success:
      function(msg)
      {
        $("#tr_codedial").append("<td><div align='right'>Code Dialogue :</div></td><td><div align='left'>"+ msg +"</div></td>");
      }
    }
  );
}

function ajax2(strthis)
{
  var param = strthis.value;
                var intitule = document.getElementById("intitule").options[document.getElementById("intitule").selectedIndex].value;
  $("#tr_intitule").empty();
  $.ajax
  (
    {
      type: "POST",
      url: "select_intitule.php",
      data: "var="+param,
      success:
      function(msg)
      {
        $("#tr_intitule").append("<td><div align='right'>Intitulé Code Dialogue :</div></td><td><div align='left'>"+ msg +"</div></td>");
      }
    }
  );
}

form1.php

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="ajax.js"></script>
<form method="POST" action="valide1.php" name="caapp">
<tr id='tr_affaire' align="center">
              <td><div align="right">Service : </div></td>
                          <td><div align="left"><?php include('select_unite.php')?></div></td>
                        </tr>
           
            <tr id='tr_codedial'>
              <td><div align="right">Code Dialogue : </div></td>
                          <td><div align="left" id='tr_codedial'><?php include('select_codedial.php')?></div></td>
                        </tr>
           
            <tr id='tr_intitule'>
              <td><div align="right">Intitulé Code Dialogue : </div></td>
                          <td><div align="left" id='tr_intitule'><?php include('select_intitule.php')?></div></td>
                        </tr>
<input type="submit" value="Envoyer" />
                  </form>

select_unite.php

<HEAD>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="ajax.js"></script>
</HEAD>

<BODY>

<select id='unite' name='unite' onChange="ajax(this)">
  <option value='void_affaire'>-</option>
  <?php
    include("../connexion.php");
   
   
   
    $query = "SELECT DISTINCT unite FROM codedial ORDER BY unite ASC";
    $rq = mysql_query($query) or die(mysql_error());
   
    while ($row=mysql_fetch_array($rq, MYSQL_ASSOC))
    {
      $unite = $row["unite"];
      echo "<option value='$unite'>$unite</option>";
    }
    mysql_close();
  ?>
</select>

</BODY>

select_codedial.php

<HEAD>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="ajax.js"></script>
</HEAD>

<BODY>

<select id='codedial' name='codedial' onChange="ajax2(this)">
  <option value='void_localisation'>-</option>
  <?php
    include("../connexion.php");
   
    $var=$_POST['var'];
   
    $query = "SELECT DISTINCT codedial FROM codedial WHERE unite='$var' ORDER BY codedial ASC";
    $rq = mysql_query($query) or die(mysql_error());
 
    while ($row=mysql_fetch_array($rq, MYSQL_ASSOC))
    {
      $codedial = $row["codedial"];
      echo "<option value='$codedial'>$codedial</option>";
    }  
    mysql_close();
  ?>
</select>

</BODY>

select_intitule.php

<HEAD>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="ajax.js"></script>
</HEAD>

<BODY>

<select id='intitule' name='intitule'>
  <option value='void_localisation'>-</option>
  <?php
    include("../connexion.php");
   
    $var=$_POST['var'];
   
    $query = "SELECT DISTINCT intitule FROM codedial WHERE codedial='$var' ORDER BY intitule ASC";
    $rq = mysql_query($query) or die(mysql_error());
 
    while ($row=mysql_fetch_array($rq, MYSQL_ASSOC))
    {
      $intitule = $row["intitule"];
      echo "<option value='$intitule'>$intitule</option>";
    }  
    mysql_close();
  ?>
</select>

</BODY>

Hors ligne

#2 20-09-2010 15:47:24

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : problème avec xmlhttprequest et firefox

Saluton,
Bien que j'ai modifié ton message pour en coloriser les parties de code, à aucun moment dans le code javascript je ne vois d'instanciation de l'objet XHR.
Ceci explique peut-être cela.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#3 20-09-2010 16:03:05

athome
Membre
Inscription : 24-06-2010
Messages : 23

Re : problème avec xmlhttprequest et firefox

exact je ne l'ai pas insérer, parce que j'ai déjà essayé et cela n'a rien donné
soit je l'ai mal inséré, où alors le mauvais...

si tu peux me conseiller sur quel objet XHR insérer et la façon dont cela pourrait fonctionner

Hors ligne

#4 20-09-2010 16:27:33

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : problème avec xmlhttprequest et firefox

>>J'ai cherché sur le web et cela proviendrait de xmlhttprequest voir du bouton submit...

arrête de faire des diagnostiques wink

quand je regarde tes 2 scripts (select_codedial.php et select_codedial.php) , je suis malade du bordel que çà doit générer big_smile:D



<HEAD>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="ajax.js"></script>
</HEAD>

<BODY>

et ce, sur les 2 scripts.

si j'ai bien compris, tu append ( $("#tr_intitule").append ) certainement dans une div (après verification, c'est dans un tr) un head et un body wink

y en a déjà a la base, donc tu les écrases ????

tu parles d'objet XHR, et tu écris dans ton script  $.ajax(............).


pour ma part, je ne vois pas comment t'aider tellement tu es loin de la vérité.

Je ne peut que te souhaiter : "BON COURAGE"

a++

Hors ligne

#5 21-09-2010 14:15:52

athome
Membre
Inscription : 24-06-2010
Messages : 23

Re : problème avec xmlhttprequest et firefox

ouahh, tu ne me motives pas là ...  LOL

j'ai bien supprimé les include (ajax.js et jquery.js) sur les trois fichiers select_*.php
en supprimant le head et le body par la même occasion

cela ne change pas le bon fonctionnement du formulaire sous IE8 wink

en fait je pense qu'il faut ajouter un objet XHR pour que cela fonctionne sous FF
mais je n'arrive pas à l'insérer et l'adapter à mon code

merci pour le courage
mais je ne pense pas être trop loin de la réussite, alors si tu as quelques minutes smile

merci tout de même pour ton intervention

Dernière modification par athome (21-09-2010 14:16:41)

Hors ligne

#6 21-09-2010 19:27:03

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : problème avec xmlhttprequest et firefox

>>en fait je pense qu'il faut ajouter un objet XHR pour que cela fonctionne sous FF
nan, l'objet XHR est implementé dans JQUERY avec $.ajax

mais je veux bien te donner qq conseil pour "proprofier" ton code wink
ce que j'ai déjà fais une 1er fois wink



<?php
  header("Content-Type: text/plain; charset=iso-8859-1");
  $buffer  = '<select id='unite' name='unite' onChange="ajax(this)">';
  $buffer .='<option value='void_affaire'>-</option>'
  include("../connexion.php");
  $query = "SELECT DISTINCT unite FROM codedial ORDER BY unite ASC";
  $rq = mysql_query($query) or die(mysql_error());
  while ($row=mysql_fetch_array($rq, MYSQL_ASSOC)) {
      $unite = $row["unite"];
      $buffer .= "<option value='$unite'>$unite</option>";
    }
    mysql_close();
    $buffer .='</select>';
   echo $buffers;
  ?>
 



ca : var unite = document.getElementById("unite").options[document.getElementById("unite").selectedIndex].value;

je ne vois pas à quoi çà sert ???


et ton truc :
$("#tr_intitule").empty();
  $.ajax
  (
    {
      type: "POST",
      url: "select_intitule.php",
      data: "var="+param,
      success:
      function(msg)
      {
        $("#tr_intitule").append("<td><div align='right'>Intitulé Code Dialogue :</div></td><td><div align='left'>"+ msg +"</div></td>");
      }
    }
  );

c'est degueu wink

change par


   $("#tr_intitule").empty().append("<td><div align='right'>Intitulé Code Dialogue :</div></td><td><div align='left'>"+ $.ajax ( {
      type: "POST",
      url: "select_intitule.php",
      data: "var="+param
    })+"</div></td>"
    );
 

fais un peu de ménage et tu verras tu prend un gros risque de meilleur fonctionnement wink


@++

et reboncourage wink

Hors ligne

#7 22-09-2010 10:30:29

athome
Membre
Inscription : 24-06-2010
Messages : 23

Re : problème avec xmlhttprequest et firefox

salut, alors j'ai bien remplacé ton premier code sur le fichier select_unite.php
mais je me retrouve avec cette erreur :

Parse error: syntax error, unexpected T_STRING in C:\wamp\www\test3\form\select_unite.php on line 3

cette ligne

var unite = document.getElementById("unite").options[document.getElementById("unite").selectedIndex].value;

me permet "normalement" de récupérer la valeur de 'codedial' et 'intitule'

j'ai aussi modifié le code javascipt ci-dessus, mais je me rretouve lors du choix du premier menu
avec au lieu d'avoir un second menu déroulant qui se rafraichit avec les bonnes valeurs, j'ai ce message :

[object XMLHttpRequest]

que sous IE8 et sous FF rien ne change, le menu apparait, mais toujours pas d'enregistrement dans la base !

cela ne pourrait pas venir, du fait que je n'ai pas de fonction XMLHttpRequest ?

Dernière modification par athome (22-09-2010 10:57:34)

Hors ligne

#8 22-09-2010 17:51:05

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : problème avec xmlhttprequest et firefox

remplace ca :
$buffer  = '<select id='unite' name='unite' onChange="ajax(this)">';
  $buffer .='<option value='void_affaire'>-</option>'

par ca
$buffer  = '<select id="unite" name="unite" onChange="ajax(this)">';
  $buffer .='<option value="void_affaire">-</option>' ;


j'avais écrit çà à l'arrache mais tu devrais trouver ce genre d'erreur seul wink

a++

Hors ligne

#9 27-09-2010 09:05:20

athome
Membre
Inscription : 24-06-2010
Messages : 23

Re : problème avec xmlhttprequest et firefox

Hors ligne

#10 27-09-2010 10:00:38

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : problème avec xmlhttprequest et firefox

Problème résolu ????
veux pas savoir qui t'as pissé (pour ne pas dire chié) ce code parce que j'ai pas envie de me faire d’ennemi  big_smile:D
parce que le mec qui me pond ce genre de code pour synchroniser 3 combos, je le mute direct a pôle emploi big_smile:D
@+ et bon courage wink

Hors ligne

Pied de page des forums