2012-12-18 55 views
2

我想將選定的單選按鈕的名稱和一些div元素數據傳遞給服務器,並在服務器端處理這些數據。如何處理Perl CGI中的元素值?

舉個例子,下面是我的CGI代碼。

use strict; 
use CGI; 
print 

"Content-type:text/html\r\n\r\n", 
"<html>", 
"<body>", 
"<div style='float:left'>", 
"<input type='radio' name='selections' id='red'>", 
"<input type='radio' name='selections' id='blue'>", 
"<input type='radio' name='selections' id='green'>", 
"</div>", 
"<div style='float:left'>", 
"<div style='float:left' id='redtime'>red time</div>", 
"<div style='float:left' id='blutime'>blue time</div>", 
"<div style='float:left' id='greentime'>green time</div>", 
"</div>", 

"<input type='button' value='clickme'/>", 
"</body>", 
"</html>"; 

在上述CGI文件我需要通過所選擇的單選按鈕的值id和任何div元素的數據的值。我如何在CGI中做到這一點?

+1

您需要閱讀一些關於HTML表單:http://www.w3schools.com/html/html_forms.asp – alex

回答

3

id旨在用於客戶端。如果你想得到它的服務器端,那麼你需要使用JavaScript來生成隱藏的輸入或使用XMLHttpRequest進行請求。

改爲使用value

然後你只需:

my $value = $instance_of_CGI->param('name_of_radio_group'); 

您還需要使你的提交按鈕type="submit"(其提交一個表單),而不是type="button"(除非你的JavaScript綁定到它這什麼都不做)。


你的表單控件還需要放置一個<form>元件內部與action屬性設置到腳本的是將要處理的數據的URI。


我也建議你把所有形式的標籤旁邊標記它們涉及到的投入,而不僅僅是使用CSS,並且你使用它們<label>元素,而不是<div>元素。


"Content-type:text/html\r\n\r\n",

不要手動完成。您正在使用CGI.pm.

print $instance_of_CGI->header(); 
+0

嗨昆汀, 我怎樣才能調用JavaScript如果我想之前驗證單選按鈕組像是否有任何收音機已被選中提交? – Madhankumar

+3

@Madhankumar - 這顯然超出了原始問題的範圍,應該在新問題中而不是在註釋中處理......除了它也是一個常見問題,所以您應該可以通過搜索來解決問題。 – Quentin

+0

好..感謝所有... – Madhankumar