0

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>
2

4 Answers 4

2

Do like this

 <script>
     var test = "<?php json_encode($variable); ?>";
 </script>
Sign up to request clarification or add additional context in comments.

Comments

2

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();

Comments

1
<?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!!

Comments

1

Try this:

<script type="text/javascript">
$(document).ready(function() {
    var states = <?php echo json_encode($user->location); ?>;
});
</script>

Comments

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.