Vous n'êtes pas identifié(e).
Pages :: 1
Bonjour, je viens exposer mon soucis ici
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
voici les pages dont vous auriez besoin :
ajax.js
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
select_unite.php
<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
<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
<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
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
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
>>J'ai cherché sur le web et cela proviendrait de xmlhttprequest voir du bouton submit...
arrête de faire des diagnostiques
quand je regarde tes 2 scripts (select_codedial.php et select_codedial.php) , je suis malade du bordel que çà doit générer :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
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
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
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
merci tout de même pour ton intervention
Dernière modification par athome (21-09-2010 14:16:41)
Hors ligne
>>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
ce que j'ai déjà fais une 1er fois
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
change par
fais un peu de ménage et tu verras tu prend un gros risque de meilleur fonctionnement
@++
et reboncourage
Hors ligne
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
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
a++
Hors ligne
problème résolu, code ici :
Hors ligne
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 :D
parce que le mec qui me pond ce genre de code pour synchroniser 3 combos, je le mute direct a pôle emploi :D
@+ et bon courage
Hors ligne
Pages :: 1