Bonjour,
Je souhaiterai pouvoir jouer dynamiquement sur mes select.
J'ai une liste de pays, et une liste de Business Partner, quand je clique sur un pays exemple la France, je voudrais qu'il y ait dans le select des BP la liste des BP de la France et seulement de la France.
Pour cela j'ai pensé à faire quelque chose comme ceci:
HTML
JAVASCRIPT
PHP
mais evidemment ca ne marche pas
Donc voila je viens vers vous en espérant que vous pourrez m'aider
je suis plutot débutant et surtout niveau Ajax j'ai du mal à comprendre
Geoffrey
[/i][/i][/i][/i]
Je souhaiterai pouvoir jouer dynamiquement sur mes select.

J'ai une liste de pays, et une liste de Business Partner, quand je clique sur un pays exemple la France, je voudrais qu'il y ait dans le select des BP la liste des BP de la France et seulement de la France.

Pour cela j'ai pensé à faire quelque chose comme ceci:

HTML
<!-- Select pour le pays qu'on souhaite -->
<div id="div_country" style="display:none;">
<p>
<select id="select_country" onChange="ChangeBPselect(this.value);">
<?php
$rows = file("datas/Country.txt", FILE_SKIP_EMPTY_LINES);
foreach($rows as $value){
?>
<option value="<?php echo $value; ?>"><?php echo $value; ?></option>
<?php
}
?>
</select>
</p>
<br/>
</div>
<!-- Select pour le choix entre les BP -->
<FONT color="royalblue">Business Partner(multiple choices)</FONT>
<p>
<form name="ListeBP">
<select multiple id="select_BPname" name="select_BPname" size="8">
<option selected value= "all">all</option>
<?php
$rows = file("datas/BPname.txt", FILE_SKIP_EMPTY_LINES);
foreach($rows as $value){
?>
<option value="<?php echo $value; ?>"><?php echo $value; ?></option>
<?php
}
?>
</select>
</form>
</p><br/>
JAVASCRIPT
function verif(){
if (document.layers){
formulaire = document.forms.ListeBP;
}
else{
formulaire = document.ListeBP;
}
}
function ChangeBPselect(code){
verif();
url = "Country=" & code;
ajax_call (url, function(json){
var tab_BP[] = json['tabBP'];
});
formulaire.select_BPname.options.length = tab_BP.length;
for (i=0; i<tab_BP.length; i++){
formulaire.select_BPname.options[i].value = tab_BP[i];
formulaire.select_BPname.options[i].text = tab_BP[i];
}
document.ListeBP.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);
}
});
};
PHP
function GetListeBP ($country){
$req_array = mysql_query('SELECT Country, BP_name FROM `actis_table`');
$tableau = array();
while ($champs = mysql_fetch_array($req_array)) {
if (strtolower($country) == strtolower($champs["Country"])) {
$tableau[] = $champs["BP_name"];
}
}
return $tableau;
}
if (isset($_GET["country"])){
$country = $_GET["country"];
$resultat['tabBP'] = GetListeBP ($country);
}
mais evidemment ca ne marche pas

Donc voila je viens vers vous en espérant que vous pourrez m'aider


Geoffrey
[/i][/i][/i][/i]