1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > php怎么访问到外部变量 从外部javascript fi访问PHP var

php怎么访问到外部变量 从外部javascript fi访问PHP var

时间:2019-02-14 09:07:37

相关推荐

php怎么访问到外部变量 从外部javascript fi访问PHP var

从外部javascript fi访问PHP var

我可以像这样使用Javascript访问PHP变量:

$fruit = "apple";

$color = "red";

?>

alert("fruit: " + "<?php echo $fruit; ?>"); // or shortcut "= $fruit ?>"

但是,如果我想使用外部JS文件怎么办:

externaljs.js:

alert("color: " + "<?php echo $color; ?>");

12个解决方案

93 votes

您实际上并没有访问它,而是在为页面提供服务时将其插入到javascript代码中。

但是,如果您的其他JavaScript并非来自外部来源,则可以执行以下操作:

$color = "Red";

?>

然后在file.js中使用如下颜色:

alert("color: " + color);

Don answered -01-15T15:15:35Z

12 votes

您也可以像这样从Javascript中的php脚本访问数据(我将在此处使用jQuery)

在您的php文件中创建输入隐藏字段,如下所示

在您的javascript文件中:

var myPhpValue = $("#myPhpValue").val();

//From here you can the whaterver you like with you js Value

if(myPhpValue != ''){

//Do something here

}

这也可以做:)

Atanas Kovachev answered -01-15T15:16:09Z

8 votes

我所看到的是让.js文件通过php解释器运行。 我不推荐。

我建议您通过AJAX获取值,并使PHP文件将值返回到JS文件。 这是一种更清洁的方法。

Ólafur Waage answered -01-15T15:16:33Z

4 votes

首先,您必须了解,没有一个程序实际上可以访问另一个程序的变量。

当您意识到这一点时,剩下的就很简单了。

您可以在主文件中设置一个js变量,然后包含您的外部js,或者使外部js由PHP生成动态

Your Common Sense answered -01-15T15:17:02Z

4 votes

您可能想要的就是异步JavaScript和XML(AJAX):[/ajax/default.aspa]

基本上,假设能够将消息从客户端JavaScript发送到服务器上的PHP脚本。 在您提供的示例(externaljs.js)中,您将使脚本通过HTTP询问服务器$ color是什么。 您也可以将脚本标记指向生成所需JavaScript的PHP脚本。 这取决于您需要做什么。

它有助于对污点检查,数据验证和安全性有所了解;)

TerryP answered -01-15T15:17:32Z

3 votes

就像其他人说的那样,javascript无法访问php变量。 但是,它确实可以访问DOM。 因此,您可以使用php向某些页面元素添加属性。 然后,您可以使用javascript访问这些属性。

例如

对javascript完全可用

dnagirl answered -01-15T15:17:56Z

1 votes

externaljs.js是一个静态文件。 当然,它不能访问PHP数据。 将PHP数据传递到js文件的唯一方法是通过在PHP脚本中写入文件来物理更改文件,尽管这充其量是一个麻烦的解决方案。

根据ÓlafurWaage的回答进行编辑:我猜写js文件不是唯一的方法。 通过PHP解释器传递js从未使我烦恼(有充分的理由)。

Manos Dilaverakis answered -01-15T15:18:22Z

1 votes

您可以将其更改为

而且PHP脚本可以只写这样的JavaScript:

$fruit = "apple";

echo 'var fruit = '.json_encode($fruit);

...

尽管像Sepehr Lajevardi这样使用AJAX会更清洁

Serty Oan answered -01-15T15:18:50Z

1 votes

Don解决方案是好的,此外,如果您想在外部javascipt中使用php数组,则可以帮助您:

PHP:

$my_php_array = [];

?>

HTML:

Javascript :(您现在可以像使用普通Javascript数组一样使用该数组)

my_js_array[0]

my_js_array.length

Mr Rubix answered -01-15T15:19:23Z

1 votes

-及以上解决方案:

由于还没有人提出它,而且我猜还没有人想到将函数index.php和js/main.php组合在一起,因此您甚至可以发送PHP Array变量,如下所示:

index.php

$string = "hello";

$array = ['hi', 'how', 'are', 'you'];

$array = base64_encode(json_encode($array));

然后,您可以使用查询字符串的参数加载所需的js文件,如下所示:

index.php

然后,例如index.php将看起来像这样。 您可以通过以下方式测试变量:

js / main.php

if ($_GET['string']) {

$a = $_GET['string'];

}

if ($_GET['array']) {

$b = $_GET['array'];

}

$b = json_decode(base64_decode($b));

echo 'alert("String $a: + '.$a.'");';

echo 'alert("First key of Array $array: + '.$b[0].'");';

exit();

?>

当您打开index.php时,将输出以下内容。因此,您看到的是,没有打开js/main.php,您仍然从中获得了javascript功能。

AlexioVay answered -01-15T15:20:14Z

0 votes

您不能这样做,也不要尝试,因为这不是推荐的方法,但是您可以将php变量作为函数参数传递给用外部js编写的函数

sushil bharwani answered -01-15T15:20:34Z

0 votes

您可以像其他任何操作一样将它们设置为include():

$fruit = "apple";

$color = "red";

?>

基本上,这会将外部文件呈现为内联js。 这里的主要缺点是您失去了浏览器缓存的潜在性能优势。 另一方面,这比在javascript中重新声明php变量要容易得多。

billynoah answered -01-15T15:20:59Z

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。