lesurfeurduweb
Messages postés3Date d'inscriptiondimanche 9 novembre 2008StatutMembreDernière intervention10 novembre 2008
-
9 nov. 2008 à 21:25
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 2015
-
11 nov. 2008 à 10:15
Bonjour,
Je fais un site un peu complexe pour gérer des livraisons. Pour cela, j'ai un formulaire ou je choisi le département de livraison. Par Javascript, j'ai une liste déroulante qui s'implemente des communes du département. Cela marche bien. Le problème est qu'il existe des zones.
Voici les codes :
fichier ges_livraison.php
<quote><label for="departement"> Département de l'intervention : </label><select size="1" name="departement" id="departement" onchange="go()"><option value="-1">Choisissez le département</option><?php
$res = mysql_query("SELECT * FROM departement ORDER BY numero");
while($row = mysql_fetch_assoc($res))
{
echo "<option value="'".$row["numero"]."'"?>".$row["numero"].' - '.$row["nom"]."";
}
?>
</select>
<label>commune</label>
<select name="communes"><option value="-1">Choisir une commune</option></select>
</quote>
fichier menu.php
<quote><!-- DEBUT SCRIPT LISTE DEROULANTE -->
function getXhr(){
var xhr = null;
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;
}
return xhr;
}
/**
* Méthode qui sera appelée sur le click du bouton
*/
function go(){
var xhr = getXhr();
// On défini ce qu'on va faire quand on aura la réponse
xhr.onreadystatechange = function(){
// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
if(xhr.readyState 4 && xhr.status 200){
leselect = xhr.responseText;
// On se sert de innerHTML pour rajouter les options a la liste
document.getElementById('communes').innerHTML = leselect;
}
}
// Ici on va voir comment faire du post
xhr.open("POST","livraison/ajaxLivre.php",true);
// ne pas oublier ça pour le post
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
// ne pas oublier de poster les arguments
// ici, l'id du departement
sel = document.getElementById('departement');
iddepartement = sel.options[sel.selectedIndex].value;
xhr.send("idDepartement="+iddepartement);
}
<!-- FIN SCRIPT LISTE DEROULANTE --></quote>
fichier ajaxLivre.php
<quote><?php
$lieu = $_SESSION['lieu'];
$zone = $_SESSION['zone'];
echo "<select name="'communes'"?>";
if(isset($_POST["idDepartement"]))
{
//if ($zone '0' OR $zone'1')
//{
include ("../administration/connect_sql.php");
$res = mysql_query("SELECT * FROM zonemagasin WHERE departement='".$_POST["idDepartement"]."' ORDER BY commune");
while($row = mysql_fetch_assoc($res))
{
echo "<option value="".utf8_encode($row["commune"])."">".utf8_encode($row["commune"])."</option>";
echo "<option>".$zone."</option>";
}
//}
//else
//{
// $res = mysql_query("SELECT * FROM zonemagasin WHERE (departement=".$_POST["idDepartement"].") ORDER BY commune");
// while($row = mysql_fetch_assoc($res))
// {
// echo "<option value="".utf8_encode($row["commune"])."">".utf8_encode($row["commune"])."</option>";
// }
//}
}
echo "";
?>
</quote>
Je pensais passer la variable par le value du formulaire, mais je sais pas comment traiter deux variables.
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 10 nov. 2008 à 10:51
bonjour,
tenet une meilleur mise en forme, là c'est illisible
si tu n'y parviens pas ( mais il n'y a pas de riaosns )
clique sur :
[../infomsg.aspx?ajout=&ID=1226583&txtmode=0 Si vous n'arrivez pas à saisir votre message, CLIQUEZ ICI pour revenir à une "TextBox classique"]
en dessous du bouton ajouter
ne met pas de php !
comment on devine le contenu de ta base de données ? celui des $variables !
dernière recommandations : un extrait ! le nécessaire et pas plus
explicite un peu ton souci... j'ai rien compris
Cordialement Bul [mon Site] [M'écrire]
lesurfeurduweb
Messages postés3Date d'inscriptiondimanche 9 novembre 2008StatutMembreDernière intervention10 novembre 2008 10 nov. 2008 à 13:16
Bonjour, Je fais un site un peu complexe pour gérer des livraisons. En fait, je gère des livraisons à partir de plusieurs lieux de départ. Dans un rayon de 50 km, il y a des zones. Nous ne pouvons mettre qu'une seule zone par demi-journée en sachant que c'est la première livraison qui détermine la zone.
J'ai deux listes déroulantes. La première pour choisir le département, et la deuxième qui affiche les communes du département. Pour cela, j'utilise le javascript. Le problème est que je souhaite afficher que les communes étant dans la bonne zone.
ges_livraison.php :
<label for="departement"> Département de l'intervention : </label>
<select size='1' name='departement' id='departement' onchange='go()'' >
<option value="-1">Choisissez le département</option>
<?php
$res = mysql_query("SELECT * FROM departement ORDER BY numero");
while($row = mysql_fetch_assoc($res))
{
echo "<option value='".$row["numero"]."'>".$row["numero"].' - '.$row["nom"]."</option>";
}
?>
</select>
<label>commune</label>
<select name='communes'>
<option value='-1'>Choisir une commune</option>
</select>
fichier menu.php
function getXhr()
{
var xhr null; 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;
}
return xhr;
} /** * Méthode qui sera appelée sur le click du bouton */
function go()
{
var xhr getXhr(); // On défini ce qu'on va faire quand on aura la réponse xhr.onreadystatechange function()
{
// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
if(xhr.readyState 4 && xhr.status 200)
{
leselect = xhr.responseText;
// On se sert de innerHTML pour rajouter les options a la liste document.getElementById('communes').innerHTML = leselect;
}
} // Ici on va voir comment faire du post
xhr.open("POST","livraison/ajaxLivre.php",true); // ne pas oublier ça pour le post
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); // ne pas oublier de poster les arguments // ici, l'id du departement
sel = document.getElementById('departement');
iddepartement = sel.options[sel.selectedIndex].value;
xhr.send("idDepartement="+iddepartement);
}
fichier ajaxLivre.php ";
echo "<select name='communes'>";
if(isset($_GET["iddepartement"]))
{
//if ($zone '0' OR $zone'1')
//{
include ("../administration/connect_sql.php");
$res = mysql_query("SELECT * FROM zonemagasin WHERE departement='".$_GET["iddepartement"]."' ORDER BY commune");
while($row = mysql_fetch_assoc($res))
{
echo "<option value='".utf8_encode($row["commune"])."'>".utf8_encode($row["commune"])."</option>";
echo "<option>".$zone."</option>";
}
Je pensais passer la variable par le value du formulaire, mais je sais pas comment traiter deux variables. La deuxième soulution est l'utilisation des sessions mais inconnu avec javascript.
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 10 nov. 2008 à 14:00
>>J'ai deux listes déroulantes. La première pour choisir le département,
et la deuxième qui affiche
>> les communes du département. Pour cela,
j'utilise le javascript. Le problème est que je souhaite
>>afficher que
les communes étant dans la bonne zone.
nicomilville
Messages postés3472Date d'inscriptionlundi 16 juillet 2007StatutMembreDernière intervention28 février 201436 10 nov. 2008 à 20:31
Salut,
Bultez++
Bon, ton problème c'est pas du javascript, normalement on devrai pas te répondre mais bon...
La prochaine fois, cible mieux ton problème (débogue, firebug, DOMinspector) !
Il s'agit d'une requête un peut spéciale, il faut utiliser la clause where comme cela :
$sql "SELECT id, commune FROM table_commune WHERE id '".$id_departement."'"; // Dans cette requête, toutes les communes d'un département doivent obligatoirement avoir le même id que lui et la variable $id doit être issu d'une requête qui cherche a quelle id correspond un département.
a++
Si la réponse vous convient, pensez : Réponse acceptée !
Vous n’avez pas trouvé la réponse que vous recherchez ?
lesurfeurduweb
Messages postés3Date d'inscriptiondimanche 9 novembre 2008StatutMembreDernière intervention10 novembre 2008 10 nov. 2008 à 20:52
Excuse moi, mais je connais les select liés. Si tu avais lu mon message, tu aurai vu que j'ai un problème avec la deuxième variable. Avant d'e^tre aggressif dans tes messages, lis bien et donne les bonnes réponses...
nicomilville
Messages postés3472Date d'inscriptionlundi 16 juillet 2007StatutMembreDernière intervention28 février 201436 11 nov. 2008 à 09:35
Re,
Excuse moi mais ce n'est pas Bul qui est en difficulé donc si j'étais toi je ne lui lancerai pas de pic comme ça, sinon aucune chance de réponse de sa part et de la part de ses copains.
Bul n'a jamais été agressif ou impolie.
Il t'a fait remarqué que tu avais du php et qu'il voulait que tu le retire et toi tu insiste en continuant a nous mettre du php, ici on est sur javascriptfr donc on répond a des problème de javascript exclusivement.
"lit bien et donne les bonnes réponses"
Pitoyable, je me demande comment on a fait pour te répondre sans s'énerver.
Petite explication :
- Bul a très bien lu ta question et il a même lu le code vu qu'il t'a demander de retirer le php, ce que tu n'a pas fait (a la place tu lui banlance des pics)
- Bul a toujours très bien répondu aux question et des milliers de membres pouront te le certifier donc je serai toi je baisserai le ton, pour moi il a bien répondu, c'est effectivement un problème de select liés, pour moi Bul est un mec très cool et sympas, je le considère comme un ami(je ne sais pas si c'est réciproque) et ça me met hors de moi des réponses comme celle ci donc je pense que ton commentaire va se retourner contre toi :
- lis bien les réponses et ne fais pas de commentaires de ce genre aux risque de froisser des membres.
Après ce n'est qu'un conseil, si tu ne le suis pas et que tu a des ennuis, je m'en fiche royalement.
a++
Si la réponse vous convient, pensez : Réponse acceptée !
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 11 nov. 2008 à 10:15
apprend à regarder les exemples.
généralement ils fonctionnent.
apprend à écrire correctement,
tu auras plus de chances d'être compris.
apprend à lire, à comprendre ce qui est écrit,
rien d'agressif dans mes propos
apprend à apprendre,
ce n'est pas parce que tu ne connais pas que ça n'existe pas
apprend un minimum de respect,