0

我需要让下面的代码停止直接执行代码而无需单击按钮。我希望该功能在单击按钮时运行。谢谢您的帮助

<html>
<head>
<script language="javascript" type="text/JavaScript">
{
function popup() {
<?php echo shell_exec('sh bash_test.sh') ?>;
}
}    
</script>

</head>
<body>
<input type="button" onclick="popup()" value="popup">




</body>
</html>
4

4 回答 4

2

这样做的唯一方法是制作一个表单或更改 url 中的某些内容window.location并检查 vars。你不能像那样把 Javascript 和 PHP 混在一起

script.php

<html>
<head>
<script language="javascript" type="text/javascript">
    function popup(){
        window.location = 'script.php?run=shell';
    }
</script>
</head>
<body>
<input type="button" onclick="popup()" value="popup">
<?php
if(isset($_GET['run']) && ($_GET['run'] == 'shell')){
    echo shell_exec('sh bash_test.sh');
}
?>
</body>
</html>
于 2012-08-27T07:12:55.427 回答
0

您的 html 无效。你的</script>标签应该在</head>标签之前

如果您真的只想在按下按钮时执行它,那么您应该考虑使用 ajax 或使用<form>

于 2012-08-27T07:10:31.590 回答
0

alert('<?php echo shell_exec('sh bash_test.sh') ; ?>');

于 2012-08-27T07:12:56.423 回答
0

您可以使用 ajax-request 来做到这一点,例如,使用 jquery:

<html>
    <head>
        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
        <script language="javascript" type="text/JavaScript">
            {
                function popup() {
                    $.post('someScript.php');
                }
            }    
        </script>
    </head>

    <body>
        <input type="button" onclick="popup()" value="popup">
    </body>
</html>

在“someScript.php”中,您可以输入命令

shell_exec('sh bash_test.sh');
于 2012-08-27T07:28:29.967 回答