par
jaufry » 01 sept. 2016, 16:09
Bonjour,
J'ai vraiment du mal à comprendre ce satané ajax...
Du coup je récapépete depuis le debut :
Le principe de mon application web c'est :
Une liste déroulante est créée en fonction des tables de la base de données postgres (ca c'est ok)
Quand on choisi un élément de cette liste un tableau avec les valeurs de cette table est affiché (ca c'est ok aussi

)
Ensuite j'aimerai que quand on click sur un bouton (Voir) on affiche un résultat en fonction de l'élément sélectionné dans la liste déroulantes. (ca c'est pas ok :/)
Tout ça se passe bien sûr en ajax.
Voici mes codes :
L'ajax : (chargerCouches et chargerTableau fonctionnent très bien, ce qui ne fonctionne pas c'est chargerCouchesC et chargerC)
Code : Tout sélectionner
$(".button-collapse").sideNav();
$(document).ready(function(){
chargerCouches();
});
function chargerCouches(){
$.get("list.php",function(reponse){
$(".return").html(reponse);
$("#list_other").change(function(){
chargerTableau($(this).val())});
});
}
function chargerTableau(Na){
$.get("result.php?list_other="+Na,function(reponse){
$(".afficher").html(reponse);
});
}
function chargerCouchesC(){
$.get("map_list.php",function(reponse){
$(".return").html(reponse);
$("#list_other").change(function(){
chargerC($(this).val())});
});
}
function chargerC(Na){
$.get("map_list.php?list_other="+Na,function(reponse){
$(".afficher").html(reponse);
});
}
La page map_list.php (qui récupère les données de la base de données et les transformes en geojson, j'ai testé ce script il fonctionne, le souci je pense que c'est vraiment le ajax avec encore l'erreur au clic du bouton : Notice: Undefined index: list_other in C:\Users\postgres\Documents\smiddest\map_list.php on line 8)
Code : Tout sélectionner
<?php
require ("connect.php");
?>
<?php
$name = $_GET['list_other'];
$qry = $bdd->prepare("SELECT date, remarq, ST_ASGeoJSON(ST_Transform(geom,4326)) AS geojson FROM other_map.$name");
$qry->execute();
// Renvoit un chemin au format GeoJSON
$geojson = array("type" => "FeatureCollection",
"features" => array()
);
// Ajouter un tronçon au tableau GeoJSON
while($row=$qry->fetch())
{
$feature = array(
"type" => "Feature",
"geometry" => json_decode($row["geojson"], true),
"crs" => array(
"type" => "EPSG",
"properties" => array("code" => "2154")
),
"properties" => array(
"date" => $row["date"],
"remarq" => $row["remarq"],
)
);
// Ajouter un tableau d"éléments au tableau de collection d"éléments
array_push($geojson["features"], $feature);
}
// Fermeture de la connexion
$bdd = null;
// Renvoyer le résultat
echo json_encode($geojson);
?>
Et enfin un bout de la page où la liste s'affiche et où j'aimerai bien appeler le fichier map_list.php (avec la valeur de la liste déroulante ce qui ferai map_list.php?list_other=$name )
Code : Tout sélectionner
<input type="button" name="bout" value="Voir" onclick="chargerCouchesC();"/>
La où sont afficher les données :
Code : Tout sélectionner
<div id="map"></div>
<div class="other">
<div>
<div class='return'></div>
</div>
<div>
<div class="afficher"></div>
</div>
</div>
Bon après en réel je voudrais afficher, suite au clic du bouton "voir", le geojson générer par map_list.php dans openslayers...
Merci pour votre aide et n'hésitez pas si je n'ai pas été assez clair

Bonjour,
J'ai vraiment du mal à comprendre ce satané ajax...
Du coup je récapépete depuis le debut :
Le principe de mon application web c'est :
Une liste déroulante est créée en fonction des tables de la base de données postgres (ca c'est ok)
Quand on choisi un élément de cette liste un tableau avec les valeurs de cette table est affiché (ca c'est ok aussi :) )
Ensuite j'aimerai que quand on click sur un bouton (Voir) on affiche un résultat en fonction de l'élément sélectionné dans la liste déroulantes. (ca c'est pas ok :/)
Tout ça se passe bien sûr en ajax.
Voici mes codes :
L'ajax : (chargerCouches et chargerTableau fonctionnent très bien, ce qui ne fonctionne pas c'est chargerCouchesC et chargerC)
[code]$(".button-collapse").sideNav();
$(document).ready(function(){
chargerCouches();
});
function chargerCouches(){
$.get("list.php",function(reponse){
$(".return").html(reponse);
$("#list_other").change(function(){
chargerTableau($(this).val())});
});
}
function chargerTableau(Na){
$.get("result.php?list_other="+Na,function(reponse){
$(".afficher").html(reponse);
});
}
function chargerCouchesC(){
$.get("map_list.php",function(reponse){
$(".return").html(reponse);
$("#list_other").change(function(){
chargerC($(this).val())});
});
}
function chargerC(Na){
$.get("map_list.php?list_other="+Na,function(reponse){
$(".afficher").html(reponse);
});
}[/code]
La page map_list.php (qui récupère les données de la base de données et les transformes en geojson, j'ai testé ce script il fonctionne, le souci je pense que c'est vraiment le ajax avec encore l'erreur au clic du bouton : Notice: Undefined index: list_other in C:\Users\postgres\Documents\smiddest\map_list.php on line 8)
[code]<?php
require ("connect.php");
?>
<?php
$name = $_GET['list_other'];
$qry = $bdd->prepare("SELECT date, remarq, ST_ASGeoJSON(ST_Transform(geom,4326)) AS geojson FROM other_map.$name");
$qry->execute();
// Renvoit un chemin au format GeoJSON
$geojson = array("type" => "FeatureCollection",
"features" => array()
);
// Ajouter un tronçon au tableau GeoJSON
while($row=$qry->fetch())
{
$feature = array(
"type" => "Feature",
"geometry" => json_decode($row["geojson"], true),
"crs" => array(
"type" => "EPSG",
"properties" => array("code" => "2154")
),
"properties" => array(
"date" => $row["date"],
"remarq" => $row["remarq"],
)
);
// Ajouter un tableau d"éléments au tableau de collection d"éléments
array_push($geojson["features"], $feature);
}
// Fermeture de la connexion
$bdd = null;
// Renvoyer le résultat
echo json_encode($geojson);
?>[/code]
Et enfin un bout de la page où la liste s'affiche et où j'aimerai bien appeler le fichier map_list.php (avec la valeur de la liste déroulante ce qui ferai map_list.php?list_other=$name )
[code]<input type="button" name="bout" value="Voir" onclick="chargerCouchesC();"/>[/code]
La où sont afficher les données :
[code]<div id="map"></div>
<div class="other">
<div>
<div class='return'></div>
</div>
<div>
<div class="afficher"></div>
</div>
</div>[/code]
Bon après en réel je voudrais afficher, suite au clic du bouton "voir", le geojson générer par map_list.php dans openslayers...
Merci pour votre aide et n'hésitez pas si je n'ai pas été assez clair :)