1

我有这个 php 和 js 代码:

<script type="text/javascript">
function StartScript(script)
{
  <?php require("StartScript.php");  ?>
}
</script>

<a href="#" onclick="StartScript(scriptname);">Start</a>

如何从 javascript 函数中获取“脚本”到 php 文件的末尾?

例如,而不是:

<?php require("StartScript.php");  ?>

具有:

<?php require("StartScript.php?script=scriptname");  ?>
4

4 回答 4

1

用客户端代码 (Javascript) 编写服务器端代码 (PHP) 是不可能的。除非您使用 Ajax 之类的东西,否则这将不起作用。

于 2013-07-22T20:00:43.803 回答
1

全文摘录(前提是StartScript.php在当前页面同级,否则添加绝对路径):

<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>

<script type="text/javascript">
   function StartScript(script) {
       jQuery.getScript('StartScript.php?script=' + escape(script));
    }
</script>

这将StartScript.php使用参数调用scriptStartScript.php将生成将在客户端浏览器中执行的 JavaScript 代码。

参考:http ://api.jquery.com/jQuery.getScript/

于 2013-07-22T20:01:05.137 回答
0

也许我误解了你的问题,但这似乎很容易......我会将所有 js 包含在 php 文件中,这样 html 方面就只有......

<?
$script = "Page1";
include("StartScript.php");
?>

和 php 将是...

<? if ($script == "Page1"){ ?>
function StartScript(script)
{
  alert("IN");
}
</script>
<? } ?>
于 2013-07-22T20:04:16.370 回答
0

问题是您混淆了客户端(JS)和服务器(PHP)。PHP 在服务器上执行并生成一些 HTML,这些 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>

否则,如果您确实需要 JavaScript 来触发 PHP 脚本运行,那么您实际上是在执行 AJAX。您可能需要某种 REST API。这个想法是您从 PHP 中公开一个 JavaScript 可以调用的 URL:

<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>
于 2013-07-22T20:25:16.660 回答