(reprise du message précédent)
Salut
Je viens de faire une autre remarque, tu as dupliqué ton id="DIV_MOVE_MENU" plusieurs fois, ce n'est pas admis, l'id est unique sur toute la page.
En effet sur le code entier que tu as fourni là haut, tu n'appelles pas ta fonction select_country() que sur le clique sur les liens, c'est pour cela que j'ai dû enlever le change sur le select.
Alors dans ce cas et si tu voudras faire appel aussi à ta fonction qui charge les datas au change du select, je vais procéder à travers, mais en se basant sur ce que tu as déjà fait, sachant qu'il y a des façon plus propre à le faire, mais vu que c'est une longue question, et qu'il va falloir que tu te formes pour connaitre les bons pratiques.
Voilà comment tu vas agir relativement à ta structure et ta logique pour charger aussi les données:
Je n'ai pas testé le code, à toi de la faire, et je te conseille vivement de réviser tes bases
J'espère que ça résout ton problème
Bonne courage
Edition: J'ai corrigé une erreur sur ça dans mon script var sl=$('.selected_country'); j'ai voulu mettre le false, pour la fonction select_country et je me suis trompé
Modifié par unami (25 Apr 2012 - 20:30)
Salut
Je viens de faire une autre remarque, tu as dupliqué ton id="DIV_MOVE_MENU" plusieurs fois, ce n'est pas admis, l'id est unique sur toute la page.
En effet sur le code entier que tu as fourni là haut, tu n'appelles pas ta fonction select_country() que sur le clique sur les liens, c'est pour cela que j'ai dû enlever le change sur le select.
Alors dans ce cas et si tu voudras faire appel aussi à ta fonction qui charge les datas au change du select, je vais procéder à travers, mais en se basant sur ce que tu as déjà fait, sachant qu'il y a des façon plus propre à le faire, mais vu que c'est une longue question, et qu'il va falloir que tu te formes pour connaitre les bons pratiques.
Voilà comment tu vas agir relativement à ta structure et ta logique pour charger aussi les données:
$(function(){
/*l'appel de cette fonction doit être fait ici (Dans le ready) pour le départ/chargement
Le même problème, tu fait appel au select avant qu'il soit prêt sur ton DOM*/
select_country ("world",false);
$('#select_year').on('change',function(){
var sl=$('.selected_country');
var cntry= (sl.length ? sl.eq(0).text().toLowerCase() : 'world');
select_country (cntry,false)
});
/*Les autres appelles de cette fonction tu les gères à travers ton html
Il y a une meilleure façon pour le faire, mais pour le moment, je réctifie le nécessaire
et à toi de te documenter un peu au futur*/
});
//Déclaration de la fonction select_country
function select_country (thecountry,clspross) {
//La mise en place de la class selected_country pour distingué le pays choisi
//L'argument clspross est facultatif et je l'ai ajouté pour ne pas modifié ce que tu as fait niveau ton html
//et pour faire dictinction entre les appeles sur le clique et les appelles directes de la fonction.
if(typeof(clspross)=='undefined'){
$('.selected_country').removeClass('selected_country');
$(this).addClass('selected_country');
}
//La déclaration de tes variables va se faire ici en tant que variables locales de la fonctions
//(Les variables globales sont à éviter que pour le prémordiale)
var selected_year=$('#select_year').val();
var url="type_data=Job&type_areaOUcountry=Learner_Country&nom_data=postsales&year=" + selected_year + "&month=all&areaOUcountry=";
ajax_call (url + thecountry);
url="type_data=Job&type_areaOUcountry=Learner_Country&nom_data=presales&year=" + selected_year + "&month=all&areaOUcountry=";
ajax_call (url + thecountry);
url="type_data=Job&type_areaOUcountry=Learner_Country&nom_data=sales&year=" + selected_year + "&month=all&areaOUcountry=";
ajax_call (url + thecountry);
url="type_data=Job&type_areaOUcountry=Learner_Country&nom_data=trainer&year=" + selected_year + "&month=all&areaOUcountry=";
ajax_call (url + thecountry);
url="type_data=Int_Ext&type_areaOUcountry=Learner_Country&nom_data=internal&year=" + selected_year + "&month=all&areaOUcountry=";
ajax_call (url + thecountry);
url="type_data=Int_Ext&type_areaOUcountry=Learner_Country&nom_data=external&year=" + selected_year + "&month=all&areaOUcountry=";
ajax_call (url + thecountry);
url="type_data=Type&type_areaOUcountry=Learner_Country&nom_data=certif exam&year=" + selected_year + "&month=all&areaOUcountry=";
ajax_call (url + thecountry);
url="type_data=Type&type_areaOUcountry=Learner_Country&nom_data=course&year=" + selected_year + "&month=all&areaOUcountry=";
ajax_call (url + thecountry);
url="type_data=Type&type_areaOUcountry=Learner_Country&nom_data=webinar&year=" + selected_year + "&month=all&areaOUcountry=";
ajax_call (url + thecountry);
url="type_data=Type&type_areaOUcountry=Learner_Country&nom_data=specific certification&year=" + selected_year + "&month=all&areaOUcountry=";
ajax_call (url + thecountry);
url="type_data=Type&type_areaOUcountry=Learner_Country&nom_data=certification&year=" + selected_year + "&month=all&areaOUcountry=";
ajax_call (url + thecountry);
url="type_data=Type&type_areaOUcountry=Learner_Country&nom_data=laboratory&year=" + selected_year + "&month=all&areaOUcountry=";
ajax_call (url + thecountry);
url="nom_duration=classroom&year=" + selected_year + "&month=all&country=";
ajax_call (url + thecountry);
url="nom_duration=elearning&year=" + selected_year + "&month=all&country=";
ajax_call (url + thecountry);
}
//la fonction d'appel Ajax
function ajax_call(what2do){
$.ajax({
type: "GET",
dataType: "json",
url: "data.php?" + what2do,
success: function(json) {
var nom = json['nom'];
nom = nom.replace(" ","_");
if (nom == "classroom" || nom == "elearning"){
$('#id' + nom + 'data').html(json['duration']+ " days");
}
else {
$('#id' + nom + 'data').html(json['ladata']);
}
}
});
};
Je n'ai pas testé le code, à toi de la faire, et je te conseille vivement de réviser tes bases
J'espère que ça résout ton problème
Bonne courage
Edition: J'ai corrigé une erreur sur ça dans mon script var sl=$('.selected_country'); j'ai voulu mettre le false, pour la fonction select_country et je me suis trompé
Modifié par unami (25 Apr 2012 - 20:30)