1

I would like to know if we can select data from the database using php and assign it to a javascript array? if so what would be the syntax?

I wrote the code below but it is not working

$js_array = "[";
$result = mysql_query("SELECT item_name FROM tbl_item");
while( $row=mysql_fetch_array($result, MYSQL_NUM) ) {
    $js_array .= $row[0]; 
    $js_array .= ",";
}
$js_array{ strlen($js_array)-1 } = ']';

 ?>

<script>
var cities = <?php echo  $js_array; ?>
for(var i=0; i<4;i++)
alert(cities.length);

</script> 
2

3 Answers 3

1

The simplest approach is converting to JSON with json_encode:

// with $js_array being a true array
var cities = <?php echo json_encode($js_array)?>;

Note, that there are esoteric cases, where this solution might not work. On the other hand, the advantage is, that json_encode takes over all quoting needs.

Sign up to request clarification or add additional context in comments.

Comments

0

Use json_encode

Comments

0

You should not echo the array object.

Iterate the array and echo the value.

<?php foreach( $js_array as $value) echo "'$value',"; ?>

1 Comment

This doesn't work in IE because of the trailing comma. You will have to work around this complicately or use implode().

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.