在PHP中使用javascript
我有以下php和js代码:在PHP中使用javascript,php,javascript,Php,Javascript,我有以下php和js代码: <script type="text/javascript"> function StartScript(script) { <?php require("StartScript.php"); ?> } </script> <a href="#" onclick="StartScript(scriptname);">Start</a> 函数StartScript(脚本) { } 如何将javas
<script type="text/javascript">
function StartScript(script)
{
<?php require("StartScript.php"); ?>
}
</script>
<a href="#" onclick="StartScript(scriptname);">Start</a>
函数StartScript(脚本)
{
}
如何将javascript函数中的“脚本”放到php文件的末尾
例如,而不是:
<?php require("StartScript.php"); ?>
拥有:
<?php require("StartScript.php?script=scriptname"); ?>
不可能用客户端代码(Javascript)编写服务器端代码(PHP)。除非您使用Ajax之类的工具,否则这将不起作用。完整摘录(前提是
StartScript.php
位于当前页面的同一级别,否则添加绝对路径):
函数StartScript(脚本){
getScript('StartScript.php?script='+escape(script));
}
这将使用参数script
调用StartScript.php
StartScript.php
将生成JavaScript代码,该代码将在客户端浏览器中执行
参考资料:也许我误解了你的问题,但这似乎很容易…我会在php文件中包含所有的js,因此html方面的内容只有
<?
$script = "Page1";
include("StartScript.php");
?>
php将是
<? if ($script == "Page1"){ ?>
function StartScript(script)
{
alert("IN");
}
</script>
<? } ?>
函数StartScript(脚本)
{
警报(“IN”);
}
问题在于,您混淆了客户端(JS)和服务器(PHP)。PHP在服务器上执行,并生成一些HTML,发送到浏览器(“客户端”)。浏览器无法运行PHP,因为它是一种服务器端语言
您应该在这里评估客户机和服务器之间所需的交互。例如,如果您只需要执行一些PHP将数据传递给JavaScript,您可以构建一个JavaScript对象:
<script type="text/javascript">
<?php // include script that gives you back some data, e.g.: ?>
<?php $somePhpData = array('red', 'yellow', 'blue'); ?>
<?php $jsonData = json_encode($somePhpData); ?>
var dataFromPhpScript = <?php echo $jsonData; ?>
// do something with the data
</script>
var DataFrompScript=
//对数据做点什么
否则,如果您真的需要JavaScript来触发PHP脚本运行,那么您实际上是在使用AJAX。您可能需要某种RESTAPI。我们的想法是从PHP公开一个URL,JavaScript可以调用:
<script type="text/javascript">
jQuery(document).ready(function() {
function startScript(scriptName, success) {
$.get('/path/StartScript.php?script-name=' + scriptName)
.done(success)
.fail(fail);
}
startScript('name-of-php-script', function(data) {
// trigger some JavaScript that relies on the output of the PHP script
});
});
</script>
jQuery(文档).ready(函数(){
函数startScript(scriptName,success){
$.get('/path/StartScript.php?脚本名称='+scriptName)
.完成(成功)
.失败(失败);
}
startScript('name-of-php-script',函数(数据){
//触发一些依赖于PHP脚本输出的JavaScript
});
});
什么是scriptname
?你知道服务器端和客户端技术的区别吗?你不能直接从JS调用PHP。你需要研究一种叫AJAX的技术,来做你想做的事情。我对AJAX不太在行,你知道最好的方法吗?你可以用jQuery/AJAX将PHP脚本加载到HTML中。只要用谷歌搜索一下,就有成千上万个有用的例子。@CharlieFord如果你想让客户端代码触发它,那真的没有一个。。。可能会在StartScript.php
上弹出一个新窗口?小提示:看看jQuery的load()
函数。那么我应该把第一位代码放在哪里?在第一位代码上,它从哪里得到?script=scriptname?试试第二个,第一个只是供参考。我需要这些吗?code.jquery.com/jquery-1.8.2.js“>code.jquery.com/ui/1.9.1/jquery ui.js”>是的,您需要jquery(如果以后使用它,您可能需要jquery ui)。
<script type="text/javascript">
jQuery(document).ready(function() {
function startScript(scriptName, success) {
$.get('/path/StartScript.php?script-name=' + scriptName)
.done(success)
.fail(fail);
}
startScript('name-of-php-script', function(data) {
// trigger some JavaScript that relies on the output of the PHP script
});
});
</script>