我有一个包含多个JavaScript函数的JavaScript文件(扩展名.js
,而不是.html
).
我想调用PHP文件中的一个PHP函数,该文件只包含一个JavaScript函数中的几个PHP函数.
.php
文件中"包含" 包含PHP函数的.js
文件?myFunc
两个参数(param1
和param2
)的函数.然后我有一个.js
包含一个名为的函数的文件myJsFunc
.如何myFunc
从myJsFunc
(JavaScript函数)中调用(PHP )?我不需要在文件中以某种方式包含PHP .js
文件吗?sgr*_*rif 54
如果你只需要将变量从PHP传递给javascript,你可以在php/html文件中使用javascript来开始标记.
<script type="text/javascript">
phpVars = new Array();
<?php foreach($vars as $var) {
echo 'phpVars.push("' . $var . '");';
};
?>
</script>
<script type="text/javascript" src="yourScriptThatUsesPHPVars.js"></script>
Run Code Online (Sandbox Code Playgroud)
如果您正在尝试调用函数,那么您可以这样做
<script type="text/javascript" src="YourFunctions.js"></script>
<script type="text/javascript">
functionOne(<?php echo implode(', ', $arrayWithVars); ?>);
functionTwo(<?php echo $moreVars; ?>, <?php echo $evenMoreVars; ?>);
</script>
Run Code Online (Sandbox Code Playgroud)
小智 24
AddType application/x-httpd-php .js
AddHandler x-httpd-php5 .js
<FilesMatch "\.(js|php)$">
SetHandler application/x-httpd-php
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)
在.htaccess文件中添加上面的代码,并在js文件中运行php
危险:这将允许客户端可能看到PHP文件的内容.如果您的PHP包含任何敏感信息(通常这样做),请不要使用此方法.
如果必须使用PHP生成JavaScript文件,那么请使用纯PHP生成整个JS文件.你可以使用普通的.PHP文件,就像通常输出html一样,区别在于使用PHP的头函数设置正确的头文件,以便将正确的mime类型返回给浏览器.JS的mime类型通常是" application/javascript "
基于Blorgbeard的一个略微修改的版本,用于容易引用的关联php数组到javascript对象文字:
首先使用要用于javascript文件的值定义一个数组:
<?php
$phpToJsVars = [
'value1' => 'foo1',
'value2' => 'foo2'
];
?>
Run Code Online (Sandbox Code Playgroud)
现在将php数组值写入javascript对象文字:
<script type="text/javascript">
var phpVars = {
<?php
foreach ($phpToJsVars as $key => $value) {
echo ' ' . $key . ': ' . '"' . $value . '",' . "\n";
}
?>
};
</script>
Run Code Online (Sandbox Code Playgroud)
现在我们可以使用以下符号从任何其他.js文件访问javscript对象文字:
phpVars["value1"]
phpVars["value2"]
Run Code Online (Sandbox Code Playgroud)
这有点棘手,因为PHP被评估为服务器端,而javascript被评估为客户端.
我会使用javascript中的AJAX调用来调用您的PHP文件,然后使用JS在页面上的某处插入返回的HTML.
实际上,实现此目的的最佳方法是在 .php 中编写 javascript,并在单独的文件中使用 jquery,以在 javascript 所在的文档中使用 Jquery get 脚本文件或 jquery load 使用 php include 函数。本质上这就是它的外观。
.php 文件扩展名中的动态 Javascript 文件 - 包含由服务器预处理的 php 变量和在脚本中需要这些变量的 javascript 的混合物。
静态 Js 文件 - 使用http://api.jquery.com/jquery.getscript/或http://api.jquery.com/load/
在主 html 页面中将静态文件作为常规 js 文件调用。调用静态js文件会强制从服务器加载动态数据。
一些文件.php 1:
<?php
$somevar = "Some Dynamic Data";
?>
$('input').val(<?php echo $somevar?>);
Run Code Online (Sandbox Code Playgroud)
或者只是回显脚本,例如
echo "$('input').val(".$somevar.");";
Run Code Online (Sandbox Code Playgroud)
文件2:somejsfile.js:
$("#result").load( "file.php" );
Run Code Online (Sandbox Code Playgroud)
文件3 myhtml.html:
<script src="somejsfile.js"></script>
Run Code Online (Sandbox Code Playgroud)
我相信这回答了许多想要混合 php 和 javascript 的人的问题。如果数据处理在后台进行,然后让用户等待数据时出现延迟,那就太好了。您还可以绕过第二个文件,只在 html 主页面上使用 php 的 include,这样您的 javascript 就会暴露在主页面上。性能取决于您以及您想要如何处理所有这些。
归档时间: |
|
查看次数: |
182234 次 |
最近记录: |