我有一个简单的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我只想运行脚本并获得输出。我该怎么做?
答案 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>";
}
?>