lyonnaisedecoeur
Messages postés65Date d'inscriptionjeudi 10 avril 2008StatutMembreDernière intervention15 mai 2008
-
7 mai 2008 à 15:49
lyonnaisedecoeur
Messages postés65Date d'inscriptionjeudi 10 avril 2008StatutMembreDernière intervention15 mai 2008
-
12 mai 2008 à 10:16
bonjour,plutot re!
Bon j'ai une page dans laquelle il y a 2 listes deroulantes, qui interagissent (liste 2 en fonction de liste1).
Bultez m'a filé une source pas mal sauf que sa marche pas... du moins pour moi
je n'arrive pas à envoyé la valeur, lors de la selection dans la premiere liste, à la seconde liste....
Un pbm avec le get je suppose...
voila une partie de code dans la page principale...
<?php
$resultat=mysql_query("SELECT * from Gamme ORDER BY nom_gamme");
[mailto:$max=@mysql_num_rows($resultat $max=@mysql_num_rows($resultat]);
?>
<script type="text/javascript">function 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;
}
function appel()
{ var xml = xmlhttp();
if(!xml)
{ alert("XmlHttpRequest non supporté"); }
else { xml.onreadystatechange = function()
{ if(xml.readyState==4)
{ var opt=xml.responseText.split("\t");
tb2.length=0;
for ( var n=1;n<opt.length;n++ )
{ tb2.length++;
tb2.options[tb2.length-1].text=opt[n];
}
}
}
xml.open("GET", "Ajax2.php?tbl2="+tb1.options[tb1.selectedIndex].text, true);
xml.send(null);
}
}
</script>
<select name="tb1" id="tb1" onchange='appel();'>
<?php
for ($nb=0;$nb<$max;$nb++)
{ $i=mysql_result($resultat,$nb,"nom_gamme");
echo '<option>'.$i.'</option>';
}
?> </select>
//debut requete
echo('je suis dans ajax2');
$rch="WHERE nom_gamme='".$_GET["tbl2"]."'";
echo $rch;
$res=mysql_query("SELECT * FROM Bose ".$rch,$co);
[mailto:$max=@mysql_num_rows($res $max=@mysql_num_rows($res]);
echo $max;
$t="";
for ($nb=0;$nb<$max;$nb++)
{ $i=mysql_result($res,$nb,"nom_produit");
$t.="\t".$i;
}
echo $t;
mysql_close($co);
?>
J'ai souligné ce qui cause l'erreur premiere de mon code, en espérant qu'il y en ait qu'une seule...
Aidez moi s'il vous plait c'est vraiment super important et sa devient urgent.... erf!
lyonnaisedecoeur
Messages postés65Date d'inscriptionjeudi 10 avril 2008StatutMembreDernière intervention15 mai 2008 7 mai 2008 à 16:05
Ok OK buz pour les mess privé sauf que bon tu es l'auteur du code et déranger le forum pour mon pbm perso, enfin tant pis si tu peux m'aider ici j'ai pas de préférences!!
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 7 mai 2008 à 16:10
si tu plantes ou tu dis, la base est mal ouverte ( nom, user, password ... )
ou il y a une erreur de syntaxe, ou...
essayes donc mon exemple ( en local il vaudrait mieux comme tes essais
et tu pourras mettre les password et le reste ! ou sur un site ) : ça baigne !
si tes modifs font planter, c'est que ce sont ces modifs qui
empêchent de fontionner ! comme en plus tu ne nous
donnes pas ce qu'il faut pour qu'on vérifie !
lyonnaisedecoeur
Messages postés65Date d'inscriptionjeudi 10 avril 2008StatutMembreDernière intervention15 mai 2008 7 mai 2008 à 16:16
Tu veux le descriptif de ma base de donnée?
jai une table gamme avec nom_gamme clé primaire
une table Bose avec identifiant_produit, nom_gamme, nom_produit,type_produit, descriptif, prix,et lien_image.
Ma table gamme représente ta table1 la table Bose est ta table2, et uand jaffiche les resultat de Ajax2.php le echo $rch maffiche "where nom_gamme="0".....Le souci doit donc venir de la transmission de la variable tbl2 non?*
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 7 mai 2008 à 16:22
tu as fait un echo de cette variable transmise ( là où elle est reçue ) comme ça tu seras sûre.
ça n'effectes à priori en rien $max=@mysql_num_rows($res);
<hr /> Cordialement Bul [mon Site] [M'écrire]
lyonnaisedecoeur
Messages postés65Date d'inscriptionjeudi 10 avril 2008StatutMembreDernière intervention15 mai 2008 7 mai 2008 à 16:31
Bon j'ai tapé sa dans ma page d'arrivée (la ou tbl2 est recue) de la sorte:
echo('je suis dans ajax2');
$var= $_GET["tbl2"];
echo $var;
$rch="WHERE nom_gamme='".$_GET["tbl2"]."'";
echo $rch;
$res=mysql_query("SELECT * FROM Bose ".$rch,$co);
[mailto:$max=@mysql_num_rows($res $max=@mysql_num_rows($res]);
echo $max;
$t="";
et j'obtiens seulement:
je suis dans ajax2WHERE nom_gamme=''0
ce qui est l'équivalent de echo ('je suis dans ajax2'); et echo$rch; donc pas de valeur pour echo $var....
Comment sa se fait?
lyonnaisedecoeur
Messages postés65Date d'inscriptionjeudi 10 avril 2008StatutMembreDernière intervention15 mai 2008 7 mai 2008 à 16:52
Ba écoute sa marche pas, j'ai exactement le mm code que celui que tu m'as filé sur cette avec le mm nombre de guillemets, donc pourquoi une guillemet en moins dans l'excécution je sais pas , par contre un truc interessant le code source me montre sa:
je suis dans ajax2WHERE nom_gamme=''0
il doi y avoir un bug plutot dans la concaténation parce que comme tu l'as écrit sa fonctionne pas...
pas un pbm de guillemets mais une concaténation foireuse
ton code c'est celui la:
$rch="WHERE t2t1ind='".$_GET["tbl2"]."'";--------et le mien:
lyonnaisedecoeur
Messages postés65Date d'inscriptionjeudi 10 avril 2008StatutMembreDernière intervention15 mai 2008 7 mai 2008 à 16:58
A putin jcrois que j'ai compris.... pas mon erreur erf mais le message de ma source, si seulement je faisais des "\n"
echo $rch ---------->donne where nom_gamme='' SANS RIEN RECUPERER
echo $max---------> donne 0!!!!
donc on en revient au fait que $_GET[tbl2"] ne retourne rien!!
pourquoi?
lyonnaisedecoeur
Messages postés65Date d'inscriptionjeudi 10 avril 2008StatutMembreDernière intervention15 mai 2008 7 mai 2008 à 20:37
>> tu as fait un echo '*'.$_GET['tbl2'].'*';
resultat rien entre les étoiles
>> fais-y un alert avant d'envoyer. pour contrôler.
Alors voila mon code :
xml.open("GET", "Ajax2.php?tbl2="+tb1.options[tb1.selectedIndex].text, true);
alert('je suis ici!');
xml.send(null);
lorsque je passe par le chemin "du site" cela veut dire lorsque jaccede à la page via mon menu flash qui inclue home_cinema.php via ajax rien ne saffiche, mais quand je vais sur la page par le vrai chemin (suivant les repertoire) lorsque je selectionne un element dans la liste 1 l'alert apparait!
Apres en quoi sa m'avance? je pense que jai mal fait le test de l'alert parce que le résultat est pas utile...
maelob
Messages postés943Date d'inscriptionmardi 14 novembre 2006StatutMembreDernière intervention 7 août 20093 8 mai 2008 à 01:40
Bonsoir,
Déjà quand je suis en developpement en php j'enleve toujours les arobase devant les fonctions car on en cache pas les erreurs mais on les traite donc si tu as une erreur au niveau des fonctions php ayant un arobase devant tu ne sera jamais au courant des erreurs.
>>
>> tu as fait un echo '*'.$_GET['tbl2'].'*';
>>resultat rien entre les étoiles
Plutot que d'écrire ça je préfére utiliser var_dump(); donc ici var_dump($_GET['tbl2']); car en utilisant echo si $_GET['tbl2'].= null chaine vide ou true/false tu ne le saura pas avec var_dump si. Donc des fois ça aide.
>>xml.open("GET", "Ajax2.php?tbl2="+tb1.options[tb1.selectedIndex].text, true);
C'est bizard que tu récuperes le texte et non la valeur.
En esperant aider à une heure aussi tardive lol.
<hr size="2" width="100%" />
Maelo ou Elo --> Mon blog
Si quelqu'un vous dit : "Je me tue à vous le répéter", laissez-le mourir. (Jacques Prévert)