Reputation: 2966
In the below script default values are used. I would like to use values from database like <?php $user->location ?>
i.e., I want to use users loaction data inside var states
.
How do I do it?
<script>
$(document).ready(function() {
var states = ['Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California'
];
</script>
Upvotes: 0
Views: 131
Reputation: 9728
In Yii you can use registerJS in your view file:
<?php
$js = "var states = ['" .
implode("','", ['Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California']) .
"'];";
$this->registerJs($js, View::POS_BEGIN)
// Now states is globally available in JS
?>
<div> ... your view html ... </div>
You can also add this JS code within a controller action instead of placing it into the view file:
public function actionIndex() {
$js = "var states = ['" .
implode("','", ['Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California']) .
"'];";
$this->view->registerJs($js, View::POS_BEGIN);
return $this->render('index', []);
}
Of course you can replace the array with any array you want. You could use e.g.:
$states = States::find()->column();
Upvotes: 2
Reputation: 739
<?php
$ar = array('one', 'two', 1, false, null, true, 2 + 5);
?>
<script type="text/javascript">
var ar = <?php echo json_encode($ar) ?>;
// ["one","two",1,false,null,true,7];
// access 4th element in array
alert( ar[3] ); // false
</script>
Thank You!!
Upvotes: 1
Reputation: 556
Try this:
<script type="text/javascript">
$(document).ready(function() {
var states = <?php echo json_encode($user->location); ?>;
});
</script>
Upvotes: 1
Reputation: 2267
Do like this
<script>
var test = "<?php json_encode($variable); ?>";
</script>
Upvotes: 2