diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php
index 930c4d183e4e89bb512aa3f47295271adae220ed..97094a466d2067c3a7378bb9476761ed0725879a 100644
--- a/ecrire/inc/utils.php
+++ b/ecrire/inc/utils.php
@@ -424,12 +424,21 @@ function parametre_url($url, $c, $v=NULL, $sep='&') {
 	$ajouts = array_flip(explode('|',$c));
 	$u = is_array($v) ? $v : rawurlencode($v);
 	$testv = (is_array($v)?count($v):strlen($v));
+	$v_read = null;
 	// lire les variables et agir
 	foreach ($url as $n => $val) {
 		if (preg_match($regexp, urldecode($val), $r)) {
 			$r = array_pad($r, 3, null);
 			if ($v === NULL) {
-				return $r[2]?substr($r[2],1):'';
+				// c'est un tableau, on memorise les valeurs
+				if (substr($r[1],-2)=="[]"){
+					if (!$v_read) $v_read = array();
+					$v_read[] = $r[2]?substr($r[2],1):'';
+				}
+				// c'est un scalaire, on retourne direct
+				else {
+					return $r[2]?substr($r[2],1):'';
+				}
 			}
 			// suppression
 			elseif (!$testv) {
@@ -453,7 +462,7 @@ function parametre_url($url, $c, $v=NULL, $sep='&') {
 	if ($v === NULL
 	AND $args = func_get_args()
 	AND count($args)==2) {
-		return $v;
+		return $v_read; // rien trouve ou un tableau
 	} elseif ($testv) {
 		foreach($ajouts as $k => $n) {
 			if (!is_array($v))
diff --git a/prive/javascript/ajaxCallback.js b/prive/javascript/ajaxCallback.js
index 10a4f0fea3dc190c42cdca49cc5949b0dad54fe3..5106b1a13e23a7bca0e2e469969c8e990c8c9fe5 100644
--- a/prive/javascript/ajaxCallback.js
+++ b/prive/javascript/ajaxCallback.js
@@ -925,6 +925,7 @@ function parametre_url(url,c,v,sep,force_vide){
 	var ajouts = [];
 	var u = (typeof(v)!=='object')?encodeURIComponent(v):v;
 	var na = [];
+	var v_read = null;
 	// lire les variables et agir
 	for(var n=0;n<args.length;n++){
 		var val = args[n];
@@ -932,7 +933,15 @@ function parametre_url(url,c,v,sep,force_vide){
 		var r=val.match(regexp);
 		if (r && r.length){
 			if (v==null){
-				return (r.length>2 && typeof r[2]!=='undefined')?r[2].substring(1):'';
+				// c'est un tableau, on memorise les valeurs
+				if (r[1].substr(-2) == '[]') {
+					if (!v_read) v_read = [];
+					v_read.push((r.length>2 && typeof r[2]!=='undefined')?r[2].substring(1):'');
+				}
+				// c'est un scalaire, on retourne direct
+				else {
+					return (r.length>2 && typeof r[2]!=='undefined')?r[2].substring(1):'';
+				}
 			}
 			// suppression
 			else if (!v.length) {
@@ -951,7 +960,7 @@ function parametre_url(url,c,v,sep,force_vide){
 			na.push(args[n]);
 	}
 
-	if (v==null) return v; // rien de trouve
+	if (v==null) return v_read; // rien de trouve ou un tableau
 	// traiter les parametres pas encore trouves
 	if (v || v.length || force_vide) {
 		ajouts = "="+ajouts.join("=")+"=";