Lucy Weatherford
Lucy Weatherford

Reputation: 5534

How to pass an integer value to JS that is in a PHP integer variable?

I'm trying to pass some variables from PHP to JS.

I saw here that for strings the following code would work:

    var str = "<?php echo $x; ?>";

I've been using this:

    var var1 = <?= $var1 ?>;

Which one should I use for int? the first version is always good? Is the second one just an old form? I'd be happy for a clarification and instruction on passing variables (dif types) from php to js in general.

Thanks!

Upvotes: 0

Views: 10773

Answers (6)

AL MaMun
AL MaMun

Reputation: 63

var a = parseInt("10") + "<br>";
var b = parseInt("10.00") + "<br>";
var c = parseInt("10.33") + "<br>";
var d = parseInt("34 45 66") + "<br>";
var e = parseInt(" 60 ") + "<br>";
var f = parseInt("40 years") + "<br>";
var g = parseInt("He was 40") + "<br>";

var h = parseInt("10", 10)+ "<br>";
var i = parseInt("010")+ "<br>";
var j = parseInt("10", 8)+ "<br>";
var k = parseInt("0x10")+ "<br>";
var l = parseInt("10", 16)+ "<br>";

var n = a + b + c + d + e + f + g + "<br>" + h + i + j + k +l;

Upvotes: 0

Alisom Martins
Alisom Martins

Reputation: 738

EVEN Anyone with problems , make the Next Way !

var str = "<?php echo $x; ?>"; 

this to string !

and

var int = parseInt('<?php echo $x; ?>');

this to Int!

Upvotes: 0

Nuhil Mehdy
Nuhil Mehdy

Reputation: 2454

Well, Lets say in PHP,

$php_int_variable = 5;
$php_string_variable = "Hello";

For getting it in javascript as like following,

var int = 5;
var string = "Hello";

You have to write,

var int = <?php echo $php_int_variable; ?>;
var string = "<?php echo $php_string_variable; ?> ";

Upvotes: 2

blake305
blake305

Reputation: 2236

First of all, lets go over how to declare a variable in javascript.

There are many types of variables, but lets go over int and string. Strings have to have quotation marks around the. Int's don't.

var int = 5;
var string = "hello";

Now when we are passing a variable from php to javascript, all we are doing is replacing the value after the equal sign with a variable declared in php. You mentioned the two ways for echoing a variable.

var str = "<?php echo $phpVariable; ?>";
var str = "<?= $phpVariable ?>";

If these variables were int (which by the way includes any number, whether integer or not), there would be no quotation marks around the php open and close tags. Now, you said you prefer using the second method. I would really advise you not to. Even though it is a lot easier to type <?= $phpVariable ?> than <?php echo $phpVariable; ?>, the former one isn't supported on all servers, whereas the latter one is. You can use it if you want, but if you ever want to move to a server, you need to check if that syntex is allowed first.

Upvotes: 6

gview
gview

Reputation: 15361

The two versions are equivalent. The 2nd version is enabled when the short_open_tag option is enabled in your php.ini. In php 5.4, the <?= will be available even without short_open_tag enabled.

Upvotes: -1

Niet the Dark Absol
Niet the Dark Absol

Reputation: 324640

For a general solution, use this:

var data = JSON.parse("<?php echo addslashes(json_encode($data)); ?>");

Upvotes: 0

Related Questions