11499 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Désolé pour le titre mais je ne savais vraiment pas quoi mettre ... Je vous explique mon probleme:
Je souhaite, dans une fenetre de filtres, modifier le select affichant la liste des business Partner suivant le choix de la Régions ou du pays de l'utilisateur.

Exemple, l'utilisateur choisis world, le select BP affiche: A,B,C,D,E,F,G
l'utilisateur choisis EMEA( Europe Middle East & Africa), le select BP affiche: A,C,D,F

Pour les pays, je n'ai apparemment aucun probleme, mais pour les régions, il y a des soucis Smiley ohwell J'ai 3 régions: Americas, Emea et Apac, pour APAC ca marche mais pas pour les deux autres (le select est totalement vide)

pourquoi ? O_O

Mon titre vient du fait que j'ai utilisé firebug, et avec lui quand je vérifie mon tableau(tab_BP) contenant la liste des Business Partner en fonction du choix de l utilisateur, j'obtiens:
- Object { 0 = "3CORP TECHNOLOGY DIS", 1="ADVANCED SOLUCIONES ", .......} pour AMERICAS
- Object { 0 = "2020 Mobile Nordic A", 1="ACR CENTRE ", .......} pour EMEA
- ["ABLECOM", "ABS India Private Li", "ABS INDIA PVT LTD", 75 more...] pour APAC

Comme vous pouvez le constater il n y a pas de Object pour APAC, or c'est le seul qui marche ... ^^

Donc si vous avez une idée du pourquoi et du comment, partagez votre savoir svp =)


Voici mon code:

var tab_BP="";	
	function ChangeBPselect(paysORarea, choix){
		if (document.layers){
			formulaire = document.forms.ListeBP;
		}
		else{
			formulaire = document.ListeBP;
		}
		
		if (choix == "select_country") {
			url = "country=" + paysORarea.trim();
			ajax_call(url, function(json){
				tab_BP = json['tabBP'];
			});	
		}
		if (choix == "select_area") {
			url = "area=" + paysORarea;
			ajax_call(url, function(json){
				tab_BP = json['tabBP'];
			});	
		}
		if (paysORarea =="world") {			
			tab_BP = cleanArray (Col_BP_name);				
		}   
		
		formulaire.select_BPname.options.length = tab_BP.length + 1;
		formulaire.select_BPname.options[0].value = "all";
		formulaire.select_BPname.options[0].text = "all";
		for (i=0; i<tab_BP.length; i++){
			formulaire.select_BPname.options[i+1].value = tab_BP[i];
			formulaire.select_BPname.options[i+1].text = tab_BP[i];
		}
		formulaire.select_BPname.options.selectedIndex = 0;
	}
	
	
	function ajax_call(what2do, callback){
		$.ajax({	
			type: "GET",
			async: false,
			dataType: "json",
			url: "data.php?" + what2do,
			success: function(json) {
				callback(json);
			}
		});		
	};



function GetListeBPArea ($area){
			$req_array = mysql_query('SELECT Regions, BP_name FROM `table_actis` ORDER BY `BP_name` ASC');
			$tableau = array();
			$temp=""; //permet d'avoir une liste et de gérer les doublons (c'est pour ca qu'on trie par BP_name)
			while ($champs = mysql_fetch_array($req_array)) {
				if (strtolower($area) == strtolower($champs["Regions"]))	{
					if ($champs["BP_name"] !="" and $champs["BP_name"] !=null){
						if ($temp==""){
							$tableau[] = $champs["BP_name"];
							$temp = $champs["BP_name"];
						}
						Else {
							if ($temp != $champs["BP_name"]) {
								$tableau[] = $champs["BP_name"];
								$temp = $champs["BP_name"];
							}
						}
					}
				}
			}
			$tableau = array_unique($tableau);
			return $tableau;
		}
		
		if (isset($_GET["area"])){
			$area = $_GET["area"];
			$resultat['tabBP'] = GetListeBPArea ($area);		
		}



J'utilise Wamp avec PhpMyAdmin, les colonnes BP_name, Country et Regions sont en varchar(20) utf8_general_ci


J'attend avec impatience votre aide parce que la je comprend vraiment pas Smiley ohwell [/i][/i]