Ajax, récupération d'une valeur au clic
Posté : 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)
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)
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 )
La où sont afficher les données :
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
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);
?>Code : Tout sélectionner
<input type="button" name="bout" value="Voir" onclick="chargerCouchesC();"/>Code : Tout sélectionner
<div id="map"></div>
<div class="other">
<div>
<div class='return'></div>
</div>
<div>
<div class="afficher"></div>
</div>
</div>Merci pour votre aide et n'hésitez pas si je n'ai pas été assez clair