2011-04-12 79 views
3

我没有收到此代码的任何输出。什么可能是错误。jQuery .keyup()函数

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

你的网址没有'不符合你列出的文件的名字......错字?另外,我们可以看到其余的HTML吗?输入元素在哪里绑定? – kafuchau 2011-04-12 12:10:51

+1

在你的标题中你提到了.keyUp()函数。是不是被触发的函数,或者是没有响应的ajax调用。 – 2011-04-12 12:11:11

+1

哪里设置了“str”? – 2011-04-12 12:11:50

回答

3

你需要从你的文字输入元素的值,并将它放入str你将它传递给之前你脚本。

像:

var str = $("#txtcmd").val(); 
2

而不是

<script type="text/javascript" src="jquery-1.5.2.js"/> 

闭上你的脚本标签是这样的:

<script type="text/javascript" src="jquery-1.5.2.js"></script> 
+0

它有什么作用?关闭这样的标签? – 2011-04-12 12:32:08

+0

@Naveed Butt - 由于某些原因,这是必要的语法,以确保它始终正确地拾取脚本,而不会导致脚本无法正常运行。 – 2011-04-13 12:33:07

2

在terminal.html什么是str for ???

你应该通过一定的价值,以获得输出

尝试echoing $_GET['q'];你会知道

+0

sry我使用了一个函数..编辑主文章 – user478636 2011-04-12 12:14:46

+0

你什么时候调用shell_execute()? – kafuchau 2011-04-12 12:16:46

+0

但你在那里声明str函数? – jimy 2011-04-12 12:17:18

2

未进行具体的问题,我相信,但我想借此 onkeyup="shell_execute(this.value)"了标记,并把脚本部分jQuery的事件处理程序:

$("#txtcmd").keyup(function(){ 
    shell_execute($(this).val()); 
}); 
1

我知道这是一个旧帖子,但这也是问题所在。

function shell_execute(str) {  
    $.ajax({ 
    url: 'exec.php', 
    dataType: 'text', 
    data: { 
     q: str 
    }, 
    success: function (response) { 
     $('#txtOut').append(response); 
    } <------------ You were missing this. 
    }); 
}