Merci beaucoup pour cette aide, je commence à avancer.
En me claquant sur ton post sadeq, j'en suis arrivé là :
Mes deux fonctions JS :
Code : Tout sélectionner
//Récupérer le tableau jSon par Ajax (données provenant d'un serveur PHP)
function getPricesFromAjaxArray(){
// on utilise ici les supports Ajax et json du framework prototype
new Ajax.Request("getPrices.php", { method:"get", onSuccess: function(response){
loadPrices (response.responseText.evalJSON()); //avec conversion de la réponse Ajax au format jSon
}
});
}
//Afficher le tableau jSon
function loadPrices(prices){
var msg = '';
var pricesTest = new Array();
for(var i=0; i<prices.length; i++) {
pricesTest[prices[i].price_range_bottomvalue] = prices[i].price_value;
}
document.getElementById('pricesTab').value = pricesTest;
}
Mon fichier PHP :
<?php
require_once 'connexion.php';
$prices = array();
$_REQUEST['price_type'] = 10;
$sql = "SELECT price_range_bottomvalue, price_value FROM ".$cfg_prefixe."prices
WHERE price_type = '".$_REQUEST['price_type']."' ORDER BY price_range_bottomvalue";
$query = mysql_query($sql) or die(mysql_error());
while($result = mysql_fetch_assoc($query)) {
$prices[] = array('price_range_bottomvalue'=>$result['price_range_bottomvalue'],'price_value'=>$result['price_value']) ;
}
echo json_encode($prices);
?>
Jusque là tout va bien.
Le problème est que je dois utiliser le tableau JS
pricesTest généré, dans une nouvelle fonction getPrice(), qui elle va récupérer la bonne ligne du tableau, en fonction de price_range_bottomvalue, et qui va faire quelques opérations, pour enfin afficher le résultat dans un <div>.
Ne sachant pas passer une variable d'une fonction à l'autre, sans la fournir en attribut de la fonction getPrice() (getPrice() doit rester vierge d'attribut, car elle va être appelée à de multiples reprises sur des onclick de l'utilisateur), j'ai tenté de passer le tableau
pricesTest dans la value d'un <input>, comme on le voit à la fin de la fonction loadPrices(prices).
Malheureusement, lorsque je tente de le récupérer dans ma fonction de calcul du prix ( getPrice() ), un
me renvoie
string, et je retombe sur des undefined lorsque je tente d'afficher les valeurs du tableau.
Existe t'il une solution plus simple, qui me permetttrait de passer le tableau pricesTest vers ma fonction de calcul, sans la lui fournir en attribut ?