Как выполнить итерацию через массив 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'] не работает, полагаю?
EDIT 2
elem ['Attribute'] ['type'] работает
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
объявляется глобальным.
Учитывая этот массив 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); });
Легко:
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); });