Итерация по массиву PHP в jQuery? - PullRequest
12 голосов
/ 30 июля 2009

Как перебрать массив PHP в jQuery? У меня есть массив в php с именем $viewfields. Как мне перебрать каждый элемент этого массива, используя jQuery?

РЕДАКТИРОВАТЬ 1

<?php foreach ($viewfields as $view): ?>           

if(<?=$view['Attribute']['type'];?>=='text'||<?=$view['Attribute']['type'];?>=='number')
{ 
     $("<input id=input<?=$view['Attribute']['sequence_no'];?> type= 'text' style= 'width:<?=$view['Attribute']['size'];?>px' data-attr=<?=$view['Attribute']['type'];?> ></input><br>").appendTo("#fb_contentarea_col1down21 #<?=$view['Attribute']['sequence_no'];?>");
}

Если я дам

$.each(arrayfromPHP,function(i,elem){

}

как мне написать код для $ view ['Attribute'] ['type'] в jQuery? elem ['Attribute'] ['type'] не будет работать, я полагаю?

РЕДАКТИРОВАТЬ 2

elem ['Attribute'] ['type'] работает

Ответы [ 2 ]

39 голосов
/ 30 июля 2009
var arrayFromPHP = <?php echo json_encode($viewFields) ?>;

$.each(arrayFromPHP, function (i, elem) {
    // do your stuff
});

Чтобы лучше понять, как все соединено (спасибо Джонатану Сэмпсону):

<!DOCTYPE html>

<html>
<head>
<script type="text/javascript">
var arrayFromPHP = <?php echo json_encode($viewFields) ?>;

$.each(arrayFromPHP, function (i, elem) {
    // do your stuff
});
</script>
</head>
<body>

</body>
</html>

Вы, конечно, можете разместить этот тег SCRIPT в любом месте на странице или даже сослаться на arrayFromPHP из внешних скриптов, так как arrayFromPHP объявлен как глобальный.

EDIT

Учитывая этот массив PHP:

$viewFields = array(
    'Attributes' => array(
        'type'  => 'foo',
        'label' => 'bar',
    ),
    'Attributes' => array(
        'type'  => 'foo',
        'label' => 'bar',
    ),
);

Доступ к его элементам с помощью jQuery будет осуществляться следующим образом:

// json_encode() will output:
// {"Attributes":{"type":"foo","label":"bar"}}

$.each(arrayFromPHP, function (i, elem) {
    alert(elem.type);
    alert(elem.label);
});
0 голосов
/ 27 апреля 2012

Простой способ:

PHP:

$an_array=array();
$an_array[]='Element 1';
$an_array[]='Element 2';
$an_array[]='Element 3';
$array_js=implode(",",$this->js_pagina); //join elements in a string

Jquery:

//Converter
window.array=new String('<?php echo $array_js?>');
window.array=window.js_pagina.split(",");
//Iterator
$.each(window.array, function (i, elem) 
{
        alert(elem);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...