我在过去几个小时里做了很多研究,只找到了Windows服务器的结果。
我的问题是我在嵌入式计算机上有一个c ++程序,需要在用户希望时执行。这就是为什么我设置一个网络服务器来处理它。所以我想用一个名为“Start Program”的按钮创建一个html页面(已经完成),然后执行我的c ++程序。
我已经尝试了Javascript child_process
,这种方式不起作用,还有php system()
调用,这是不方便的,因为它没有单独对按钮点击作出反应,而是对页面进行刷新
有没有聪明的方法呢?谢谢!
答案 0 :(得分:5)
如果您不想刷新页面,可以使用jquery对按钮进行编程以进行ajax调用。您可以在html索引页面中添加以下内容:
<script type="text/javascript" src="https://code.jquery.com/jquery-2.2.1.js"></script>
<script>
<!--
$(document).ready(function() {
$('#buttonid').on('click', function(e) {
e.preventDefault(); // prevent page from reloading.
$.get('/callmyprogram.php');
});
});
-->
</script>
同样在你的html上,按钮的ID必须与上面JS代码中的选择器匹配。选择器#buttonid
表示您的按钮ID为buttonid
。因此,按钮的html类似于:
<input type="submit" id="buttonid" value="Run C++ program"/>
然后你会callmyprogram.php
调用你的c ++程序:
<?php
exec("/usr/local/bin/myprogram", $output, $ret);
echo "output: $output" . PHP_EOL;
echo "ret: $ret" . PHP_EOL;