我没有收到此代码的任何输出。可能是错误。
terminal.html
<html>
<head>
<link href="/css/webterminal.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="jquery-1.5.2.js"/>
<script type="text/javascript">
function shell_execute(str) {
$.ajax({
url: 'exec.php',
dataType: 'text',
data: {
q: str
},
success: function (response) {
$('#txtOut').append(response);
});
}
</script>
</head
<body">
<div class="container">
<h2>UNIX Web Based Terminal 1.0</h2>
<br />
<p><b>output</b></p>
<form>
<span id="User"></span>< <input type="text" id="txtcmd" onkeyup="shell_execute(this.value)" class="textbox" size="20" />
</form>
<div class="output">
<p><span id="txtOut"></span></p>
</div>
</div>
</body>
</html>
exec.php
<?php
$q=$_GET["q"];
$output=shell_exec($q);
echo "<pre>$output</pre>";
?>
答案 0 :(得分:3)
您需要从文本输入元素中获取值,并在将其传递给脚本之前将其放入str
。
像:
var str = $("#txtcmd").val();
答案 1 :(得分:2)
而不是
<script type="text/javascript" src="jquery-1.5.2.js"/>
关闭脚本标记,如下所示:
<script type="text/javascript" src="jquery-1.5.2.js"></script>
答案 2 :(得分:2)
在terminal.html中,str
为???
你应该传递一些值来获得输出
尝试echoing $_GET['q'];
您将会知道
答案 3 :(得分:2)
我不相信你的问题,但我会接受
onkeyup="shell_execute(this.value)"
超出标记并在脚本部分放入一个jQuery事件处理程序:
$("#txtcmd").keyup(function(){
shell_execute($(this).val());
});
答案 4 :(得分:1)
我知道这是一个老帖子,但这也是问题..
function shell_execute(str) {
$.ajax({
url: 'exec.php',
dataType: 'text',
data: {
q: str
},
success: function (response) {
$('#txtOut').append(response);
} <------------ You were missing this.
});
}