在PHP中使用javascript

在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

我有以下php和js代码:

<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>