Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   передать PHP массив на js,без кавычек (https://javascript.ru/forum/misc/45616-peredat-php-massiv-na-js-bez-kavychek.html)

UserAz 08.03.2014 11:46

передать PHP массив на js,без кавычек
 
Привет всем)
$colors = array('#FFF00','#FF000');
		$perems = array('perema','peremb');

echo json_encode($colors);    // ["#FFF00","#FF000"]
echo json_encode($perems);  //["perema","peremb"]

как передать PHP массив $perems и $colors на js,так чтобы $perems сохранилось так:
var perems= [perema,peremb];


а не так :
var perems= ["perema","peremb"];

то есть без кавычки.

а colors с одной кавычки:
var colors= ['#FFF00','#FF000'];


заранее всем спасибо:)

Aetae 08.03.2014 11:52

Обработать вручную или до или после, поведение нужно и близко не стандартное же.

UserAz 08.03.2014 11:58

а как это сделать?

ruslan_mart 08.03.2014 12:08

var colors= ['#FFF00','#FF000'],
    newColors = '[' + colors.toString().replace(/'|"/, '') + ']';

alert(newColors);

Zuenf 08.03.2014 12:23

Сделай так:
$colors = array('#FFF00','#FF000');
		$perems = array('perema','peremb');

function superQuotes($n){
    return "'".$n."'";
}

echo '['.implode(',', array_map("superQuotes", $colors)).']';    // ['#FFF00','#FF000']
echo '['.implode(',', $perems).']';  //[perema, peremb]

UserAz 08.03.2014 12:29

Цитата:

Сообщение от Ruslan_xDD (Сообщение 301716)
var colors= ['#FFF00','#FF000'],
    newColors = '[' + colors.toString().replace(/'|"/, '') + ']';

alert(newColors);

Спасибо большое.

а если массив двумерный?

UserAz 08.03.2014 12:30

Цитата:

Сообщение от Zuenf (Сообщение 301718)
Сделай так:
$colors = array('#FFF00','#FF000');
		$perems = array('perema','peremb');

function superQuotes($n){
    return "'".$n."'";
}

echo '['.implode(',', array_map("superQuotes", $colors)).']';    // ['#FFF00','#FF000']
echo '['.implode(',', $perems).']';  //[perema, peremb]

Щас попробую спасибо)

UserAz 08.03.2014 13:00

function superQuotes($n){ return '"'.$n.'"';}

$colors = array("#FFF00","#FF000");
$kordinati  = array(array("new google.maps.LatLng(13616, 613613)","new google.maps.LatLng(13616, 613613)"),
                         array("new google.maps.LatLng(13616, 613613)","new google.maps.LatLng(13616, 613613)"));
$names = array("test","test2");

я хочу чтобы так:
var colors = ['#FFF00','#FF000'];
  var kordinati =[[new google.maps.LatLng(13616, 613613),
		       new google.maps.LatLng(125125, 16361)],
		    [new google.maps.LatLng(13616, 613613),
		    new google.maps.LatLng(125125, 16361)],
				
                                  ];
  var names = [test,test2];

делаю так :
var colors = <?echo  '['.implode(',', array_map("superQuotes", $colors)).']';  ?> ;
var kordinati <? echo '['.implode(',', array_map("superQuotes", $kordinati)).']';  ?>;
 var names = <?echo '['.implode(',', $names).']'; ?>;

но не получается(

Zuenf 08.03.2014 13:06

У тебя все не получается или вторая строка?
Для второй строки можно так делать:
function matrix($n){
    return '['.implode(',', $n).']';
}

var kordinati <? echo '['.implode(',', array_map("matrix", $kordinati)).']';  ?>

UserAz 08.03.2014 14:03

Всем огромное спасибо!!
спасибо Zuenf)
Все работает)


Часовой пояс GMT +3, время: 19:01.