2

I have a variable in PHP code which I want to access in my JavaScript function. Below is my code.

myfile.php

<?php
  $i = 0;
?>
<html>
  <head>
    <script type="text/javascript">
      function SetText() {
        //I want to access value of i here
        //alert(i);
      }
    </script>
  </head>
  <body>
    <button type="button" id="mybutton" onclick="SetText()">Click ME</button>
  </body>
</html>

What are the ways to access I variable declared in php code in the JavaScript code?

2
  • 1
    You can emit the corresponding JavaScript from PHP for the task. I recommend using json_encode for consistency - it will correctly deal with primitives as the "root object". Commented Apr 5, 2014 at 4:23
  • possible duplicate of Pass a PHP string to a JavaScript variable (and escape newlines) Commented Apr 5, 2014 at 8:01

4 Answers 4

11

You can access a PHP variable inside javascript by echoing it within quotes if the value is a string and just need to echo if it is an integer, like;

var i=<?php echo $i; ?>;  
Sign up to request clarification or add additional context in comments.

6 Comments

If you know for a fact that it's an integer then don't surround it by quotes.
@Jenz - its not working. When I surround it with quotes, alert(i) shows whole <?php echo $i; ?>;
@nkp Sounds like your PHP isn't even running. Right-click on the HTML page in the browser and go to "View source". Do you see <?php at the very top?
@user2864740 - its running.
@nkp No, it's not. You say that "<?php echo $i; ?>" was alerted. Given the posted code in this answer and the context of the question, this will only happen if the PHP file is not being processed correctly. So, again, "Do you see <?php at the very top [of the HTML]?"
|
1

SetTextUse this

<button type="button" id="mybutton" onclick="SetText(<?php echo $i; ?>)">Click ME</button>    

And in Javascript use this

function SetText(id)
{
alert(id);
}

Comments

1

reference!

i am using this code for access it's working you can try it

var abc = <? php echo $a; ?>

alert(abc);

Comments

1

Try this

<script>
      window.myVar = <?php echo $i; ?>;
</script>

or put all your variables (which you wanna paas to ui/js) into some array

and define this function

function sendToJS($array){
     for (var $i in $array){
       echo  'window.'.$i.'="'.$array.'";' 
     }
}

then in your html/php file

<script><?php 
    sendToJS($myVars);
?></script>

Comments

Your Answer

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