2010-11-22 53 views
0

我在從我的cgi文件中打印特定變量時出現問題。我收到這個變量,從我的網頁中調用totalCost,然後嘗試打印它,但沒有任何反應。所有其他變量可以從網頁成功接收,並通過我的cgi文件打印到另一個網頁上,除了這一個..我檢查過大小寫敏感但是沒有幫助在CGI文件中導致錯誤的HTML變量

html中的代碼...

<tr> <td colspan=3 padding=2><b> Total = $ </b> <input type= "text" id="totalCost" disabled= true name= "totalCost" size ="5" maxlength="5" value= 0.00 /> <td> <tr> 

的computeCost功能

<script type= "text/javascript"> 

function computeCost(){ 

var apples= document.getElementById("appleQty").value; 
var oranges=document.getElementById("orangeQty").value; 
var bananas=document.getElementById("bananaQty").value; 

var totCostTemp=0.69*apples + 0.59*oranges + 0.39*bananas; 

document.getElementById("totalCost").value= totCostTemp; 

} 
</script> 

的CGI文件,我寫使用Perl,我收到我的變量以這種方式:

my ($appleQty, $orangeQty, $bananaQty, $user, $cardType, $c) = (param("appleQty"), param("orangeQty"), param("bananaQty"), param("user"), param("cardType"), param("totalCost")); 

然後嘗試以這種方式打印出來..

print header; 
print start_html("Receipt"), 
print h3("Fruit Store: Order Summary"), 
table({-border => 2} ,caption("Your Receipt"), 
Tr([th("Name:").td($user),th("Payment Method:").td($cardType),th("Fruit Type").td("Quantity"), th("Apple").td($appleQty), th("Oranges").td($orangeQty), th("Bananas").td($bananaQty), th("Total Cost:").td($c)])); 
print end_html; 

請注意......除了TOTALCOST所有變量得到正確打印。在我的最終網頁中,totalCost根本不會被打印......我認爲這與我做了一些計算並且可能沒有正確存儲在ID中有關。但我不知道如何解決..

謝謝你的建議!

+0

您的問題與Perl無關,但與HTML無關。 – 2010-11-22 16:24:55

+0

我沒有意識到,早些時候,謝謝。 – Roy 2010-11-22 16:31:31

回答

2

殘疾人領域沒有得到公佈。所以你只需要修改該字段以使其只讀。像:

<input type="text" id="totalCost" readonly="true" name="totalCost" size ="5" value="0.00" /> 

如果你不喜歡的只讀域的顏色,你可以使用CSS來修改它喜歡:

<style> 
    input[readonly=true] { 
    color:silver; 
    } 
</style> 

或者更好的CSS兼容性:

<style> 
    .disabled { 
     color:silver; 
    } 
</style> 

<input type="text" id="totalCost" readonly="true" name="totalCost" size ="5" value="0.00" class="disabled" /> 

您也可以使用隱藏字段,但不必更改當前的代碼。

2

如果<input>元素從未啓用,則表單在發佈時不會發送到服務器。

如果您不希望用戶能夠更新該字段,則不要使用普通的「文本」<input>。將<span>放在那裏以保存該值,並更新啓用的「隱藏」<input>

function computeCost(){ 

    var apples= document.getElementById("appleQty").value; 
    var oranges=document.getElementById("orangeQty").value; 
    var bananas=document.getElementById("bananaQty").value; 

    var totCostTemp=0.69*apples + 0.59*oranges + 0.39*bananas; 

    document.getElementById("totalCost").value= totCostTemp; 
    document.getElementById('totalCostView').innerHTML = '$' + totCostTemp; 

} 

和頁面看起來像:

<td> 
    <span id='totalCostView'>$0.00</span> 
    <input type='hidden' id='totalCost' name='totalCost' value='0.00'> 
</td>