2014-07-21 16 views
0

我想傳遞一個參數從阿賈克斯後到perl,但perl的只是不能看到它... ...從阿賈克斯後傳遞參數的Perl不工作

HTML:

<html> 
<head> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
<script> 
$(document).ready(function(){ 
    $("input").keyup(function(){ 
    txt=$("input").val(); 
    $.post("search1.pl",{suggest:txt},function(result){ 
     $("span").html(result); 
    }); 
    }); 
}); 
</script> 
</head> 
<body> 
First name: 
<input type="text" /> 
<p>Suggestions: <span></span></p> 
</body> 
</html> 

的Perl:

#!/usr/bin/perl 
use CGI; 
my $q = CGI->new; 
my $txt = $q->param('txt'); 
print "Content-type: text/html\n\n"; 
print "txt=$txt<br>"; 
print "HAHA1<br>"; 
print "HAHA2<br>"; 

輸出:

建議:TXT =

HAHA1

HAHA2

我期待看到名爲 「txt =」 有我在輸入框中

任何線索進入?

+0

提交的參數的名稱是'suggest',不'txt'。 – friedo

+3

同時加上'use strict;使用警告;'到Perl的頂部。他們將幫助您調試後續問題。 – friedo

+1

**危險**:此代碼[易受XSS影響](https://www.owasp.org/index.php/Cross-site_Scripting_(XSS))。用戶輸入需要在插入HTML文檔之前進行轉義! – Quentin

回答

3

你叫你的參數suggest

$.post("search1.pl",{suggest:txt} 

,但你想讀一個叫txt

更改爲:

my $txt = $q->param('suggest'); 
+0

建議的確切含義是什麼:txt,這意味着建議是一個文本字段? –

+1

不,意思是「向服務器發送一個名爲'suggest'的參數與變量的值'txt'「。 – Quentin

+0

好的,謝謝先生 –