如何从按钮调用php函数?

时间:2011-09-14 10:43:32

标签: php

我有一个简单的PHP脚本:

<?php
    $command = "git pull";
    $output = shell_exec($command);
    echo "<pre>$output</pre>";
?>

我想通过按下按钮来调用它:

<form metod="post" action="/pull.php">
   <button type="submit">Pull changes</button>
</form>

我想在按钮下输出或用输出替换按钮但是我不想去/pull.php我只想运行脚本并获得输出。我该怎么做?

4 个答案:

答案 0 :(得分:2)

你需要使用javascript XMLHTTPRequest(或更好的jQuery's get),在任何一种情况下,JavaScript都可以让你从另一个网址动态加载内容。

答案 1 :(得分:1)

要使用ajax获取响应并将其显示在按钮下方,请先为按钮下方的消息留出空间:

 <form onclick='run()'>
 <button type="submit">Pull changes</button>
 <div id='msg'><div/>
 </form>

现在在标题标记中添加以下内容:

 <script type="text/javascript">
 function run()
 {
 loadXMLDoc("pull.php",function()
 {
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById('msg') = xmlhttp.responseText;
    }
 });
 }
 function loadXMLDoc(url,cfunc)
 {
 if (window.XMLHttpRequest)
   {// code for IE7+, Firefox, Chrome, Opera, Safari
   xmlhttp=new XMLHttpRequest();
   }
 else
   {// code for IE6, IE5
   xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
   }
 xmlhttp.onreadystatechange=cfunc;
 xmlhttp.open("POST",url,true);
 xmlhttp.send();
 }
 </script>

答案 2 :(得分:0)

PHP是一种服务器端语言,单击按钮是客户端操作,因此您需要使用像JavaScript这样的客户端解决方案来弥补差距。

答案 3 :(得分:-1)

将action属性保留为空并将该代码放在按钮后面,您将拥有类似的内容:

<form metod="post" action="">
    <button name="button" type="submit">Pull changes</button>
</form>

<?php
    if(isset($_POST['button'])) {
        $command = "git pull";
        $output = shell_exec($command);
        echo "<pre>$output</pre>";
    }
?>