par
sahn » 08 juin 2015, 23:01
bonjour tout le monde ;
j'ai 4 tables dans une base données : gouvernorat , délégation,ville,cité
je veux creer 4 listes déroulantes en html et qui « changent » en fonction du choix d’une liste déroulante précédente.
j'ai créer deux fichiers : une contient le code html du forme et un script javascript (jquery et ajax) et déterminer l'id de l'élément sélectionner dans la liste et le passe en paramètres du prochaine requête pour récupérer les champ de l'autre liste , et une fichier php contienne les requêtes et la connexion à la base .
voilà ce que j'ai fait , merci de m'aider à déterminer le travail , j'arrive pas à comprendre comment faire pour relier les 4 listes , j'ai passé tout une journée et j'arrive pas à le résoudre .
html file :
[html]<script type="text/javascript">
$(document).ready(function(){
var $Gouv=$("g1");
var $del=$("d1");
var $vi=$("v1");
var $ci=$("c1");
$.ajax({
url: 'dd.php',
data : 'go',
datatype : 'json',
success: function(json){
$.each(json,function(index,value){
$Gouv.append('<option value="'+index'">'+value+'</option>');
});
}
});
$Gouv.on('change',function(){
var val=$(this).val();
if (val !='') {
$del.empty();
$.ajax({
url:'dd.php',
data:'id_gouv='+val,
datatype: json,
success:function(json){
$.each(json,function(index,value){
$del.append('<option value="'+index+'">'+value+'</option>');
});
}
})
}
});
}):
</script>
<div class= "form-group col-xs-2 form-group-sm">
<div class="panel-heading">
<div class="btn btn-sm btn-success active">
<span class="glyphicon glyphicon-ok"></span>
Situation
</div>
</div>
<div class="form-group col-xs-8 form-group-sm">
<select class="Gouvernorat" name="Gouvernorat" id="g1" onchange="getState(this.value);">
</select>
</div>
<div class="form-group col-xs-8 form-group-sm">
<select name="delegation" class="delegation" id="d1 ">
</select>
</div>
</div>[/html]
dd.php :
<?php
if (isset($_GET['go'])||isset($_GET['id_gouv'])) {
# code...
$json=array();
if (isset($_GET['go'])) {
# code...
$req="select * from Gouvernorat order by nom_G";
}
else if (isset('id_gouv')) {
# code...
$id=htmlentities(intval($_GET['id_gouv']));
$req="select * from delegation where id_G=". $id ." order by nom_d";
}
try {
$bdd = new PDO('mysql:host=localhost;dbname=testajout', 'root', 'root');
} catch(Exception $e) {
exit('Impossible de se connecter à la base de données.');
}
// exécution de la requête
$resultat = $bdd->query($req) or die(print_r($bdd->errorInfo()));
// résultats
while($donnees = $resultat->fetch(PDO::FETCH_ASSOC)) {
// je remplis un tableau et mettant l'id en index (que ce soit pour les régions ou les départements)
$json[$donnees['id']][] = utf8_encode($donnees['nom']);
}
// envoi du résultat au success
echo json_encode($json);
}
?>
}
?>
bonjour tout le monde ;
j'ai 4 tables dans une base données : gouvernorat , délégation,ville,cité
je veux creer 4 listes déroulantes en html et qui « changent » en fonction du choix d’une liste déroulante précédente.
j'ai créer deux fichiers : une contient le code html du forme et un script javascript (jquery et ajax) et déterminer l'id de l'élément sélectionner dans la liste et le passe en paramètres du prochaine requête pour récupérer les champ de l'autre liste , et une fichier php contienne les requêtes et la connexion à la base .
voilà ce que j'ai fait , merci de m'aider à déterminer le travail , j'arrive pas à comprendre comment faire pour relier les 4 listes , j'ai passé tout une journée et j'arrive pas à le résoudre .
[b] html file : [/b]
[php][html]<script type="text/javascript">
$(document).ready(function(){
var $Gouv=$("g1");
var $del=$("d1");
var $vi=$("v1");
var $ci=$("c1");
$.ajax({
url: 'dd.php',
data : 'go',
datatype : 'json',
success: function(json){
$.each(json,function(index,value){
$Gouv.append('<option value="'+index'">'+value+'</option>');
});
}
});
$Gouv.on('change',function(){
var val=$(this).val();
if (val !='') {
$del.empty();
$.ajax({
url:'dd.php',
data:'id_gouv='+val,
datatype: json,
success:function(json){
$.each(json,function(index,value){
$del.append('<option value="'+index+'">'+value+'</option>');
});
}
})
}
});
}):
</script>
<div class= "form-group col-xs-2 form-group-sm">
<div class="panel-heading">
<div class="btn btn-sm btn-success active">
<span class="glyphicon glyphicon-ok"></span>
Situation
</div>
</div>
<div class="form-group col-xs-8 form-group-sm">
<select class="Gouvernorat" name="Gouvernorat" id="g1" onchange="getState(this.value);">
</select>
</div>
<div class="form-group col-xs-8 form-group-sm">
<select name="delegation" class="delegation" id="d1 ">
</select>
</div>
</div>[/html][/php]
[b][u]dd.php[/u][/b] :
[php]<?php
if (isset($_GET['go'])||isset($_GET['id_gouv'])) {
# code...
$json=array();
if (isset($_GET['go'])) {
# code...
$req="select * from Gouvernorat order by nom_G";
}
else if (isset('id_gouv')) {
# code...
$id=htmlentities(intval($_GET['id_gouv']));
$req="select * from delegation where id_G=". $id ." order by nom_d";
}
try {
$bdd = new PDO('mysql:host=localhost;dbname=testajout', 'root', 'root');
} catch(Exception $e) {
exit('Impossible de se connecter à la base de données.');
}
// exécution de la requête
$resultat = $bdd->query($req) or die(print_r($bdd->errorInfo()));
// résultats
while($donnees = $resultat->fetch(PDO::FETCH_ASSOC)) {
// je remplis un tableau et mettant l'id en index (que ce soit pour les régions ou les départements)
$json[$donnees['id']][] = utf8_encode($donnees['nom']);
}
// envoi du résultat au success
echo json_encode($json);
}
?>
}
?>[/php]