Iterating through a PHP array in jQuery?
arrays, foreach, jquery, php
Solution
var arrayFromPHP = <?php echo json_encode($viewFields) ?>;
$.each(arrayFromPHP, function (i, elem) {
// do your stuff
});
To better understand how the things are wired together (thanks Jonathan Sampson):
<!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>
You can of course place that `SCRIPT` tag wherever you want in the page, or you can even reference `arrayFromPHP` from external scripts as `arrayFromPHP` is declared as global.
EDIT
Given this PHP array:
$viewFields = array(
'Attributes' => array(
'type' => 'foo',
'label' => 'bar',
),
'Attributes' => array(
'type' => 'foo',
'label' => 'bar',
),
);
Accessing its elements with jQuery would be done like this:
// json_encode() will output:
// {"Attributes":{"type":"foo","label":"bar"}}
$.each(arrayFromPHP, function (i, elem) {
alert(elem.type);
alert(elem.label);
});
Problem
How do I iterate through a PHP array in jQuery? I have an array in php named `$viewfields`. How do I iterate through each element of this array using jQuery? EDIT 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'];?>"); } ``` If i give ``` $.each(arrayfromPHP,function(i,elem){ } ``` how do I write the code for $view['Attribute']['type'] in jQuery? elem['Attribute']['type'] won't work I suppose? EDIT 2 elem['Attribute']['type'] does work