How to assign PHP array values to JavaScript array? Using below PHP code I am storing data in PHP array: <?php
$str_query="SELECT title,description FROM tablename ORDER BY title";
$rs_sch=GetRecordset($str_query);
$int_count=0;
$schd_arr = array();
while(!$rs_sch->EOF())
{
$schd_arr[$int_count] = $rs_sch->Fields("title").": ".$rs_sch->Fields("description");
$rs_sch->MoveNext();
$int_count++;
}
?>
Using below JavaScript code I am trying to store PHP array data into JavaScript array What and how to write variable at below 2 mentioned locations so my code can work? <script type="text/javascript" language="javascript">
var pausecontent=new Array()
for (sch_cnt=0; sch_cnt<*Here I want to assign value of $int_count php variable*; sch_cnt++)
{
pausecontent[sch_cnt]=<?php *Here I want to assign php array and counter values (something like this - $schd_arr[sch_cnt];)* ?>;
}
</script>
Dharman♦ 27.7k21 gold badges75 silver badges126 bronze badges
asked Oct 10, 2012 at 6:52 1 You can directly use the json_encode function. It is easy to use and produces valid javascript so is very stable: <script type="text/javascript">
var pausecontent = <?php echo json_encode($php_array); ?>;
</script>
hakre 187k48 gold badges418 silver badges802 bronze badges answered Oct 10, 2012 at 7:00
HkachhiaHkachhia 4,3136 gold badges38 silver
badges74 bronze badges 1 You can't loop like that, you need to loop the PHP array and push into javascript
array: <script type="text/javascript" language="javascript">
var pausecontent = new Array();
<?php foreach($schd_arr as $key => $val){ ?>
pausecontent.push('<?php echo $val; ?>');
<?php } ?>
</script>
answered Oct 10, 2012 at 6:57 Mihai IorgaMihai
Iorga 38.5k15 gold badges107 silver badges106 bronze badges 0
I think you'd best get the array to your javascript first. That would be something like this: var theVariableYouWantTheArrayIn = <?php echo json_encode($theArrayYouWantInJavascript); ?>
After that it is a normal js array, so you can use properties like .length which will presumably make the loop much easier. answered Oct 10, 2012 at 7:04 1168411684 7,29812 gold badges46 silver badges69 bronze badges
I had the same problem doing this but finally found the best solution
<script>
var arr=[];
arr.push('<?php
include('conn.php');
$query = "SELECT *FROM c group by name";
$res = mysqli_query($conn,$query) or die(mysqli_error($conn));
while($data = mysqli_fetch_array($res))
{
echo $data["name"];
}
?>');
</script>
answered Jan 6, 2018 at 17:11
Above both answers in good. - Iterate through the array you got as a result of your DB query and add each value to a new PHP variable,
- Add a counter and increment it during each iteration to make sure that you’re not adding a comma after the last element,
- If the count of the elements in the array is more than 1, create the array as usual, otherwise create a new array with 1 element and assign your PHP array
value to the index 0.
Sébastien 11.5k11 gold badges54
silver badges74 bronze badges answered Jun 1, 2016 at 5:41 Not the answer you're looking for? Browse other questions tagged
php javascript or
ask your own question. |