2010-09-13 70 views
0

我編制了一個可以動態計算價格的表格。 您可以選擇2個包裝。form radio box ajax value

<input type="radio" id="p1" onclick="doWork();" name="package"/> 
<input type="radio" id="p2" onclick="doWork();" name="package"/> 

在Ajax中,我將值發送到一個php文件。

function doWork(){  
    httpObject = getHTTPObject(); 
    if (httpObject != null) { 
     var url = "price.php?p1=" + document.getElementById('p1').value + "&p2=" + document.getElementById('p2').value; 
     httpObject.open("GET", url, true); 

     httpObject.send(null); 
     httpObject.onreadystatechange = setOutput; 
    } 
} 

裏面的PHP文件我

<?php 
    $price = 0; 

    if ($_GET['p1'] == 'on') $price += 1; 
    if ($_GET['p2'] == 'on') $price += 2; 

    echo $price."$"; 
?> 

在Safari中它顯示合適的價格。但在Firefox我總是得到價格3.我不會改變,如果我選擇1或2它總是1和2.

我必須改變什麼?

謝謝!

+0

我不是很追隨,'p1'和'p2'在哪裏通過?它們不在您當前的GET請求中,問題之外還有更多代碼嗎? – 2010-09-13 22:10:44

回答

0

當您在PHP頁面中獲取獲取變量時,您正在使用'p1'和'p2'。它看起來像你的Ajax的URL被設置爲price.php?pbasic=" + document.getElementById('p1').value + "&ppro=" + document.getElementById('p2').value,所以它似乎有一些名稱混淆。

+0

好的。我在複製時忘記更改此值。我已糾正它。在Firefox中它仍然不起作用。 – Daniel 2010-09-14 08:06:30

+0

是否啓用JavaScript?你有沒有試過做一個簡單的警報? – 2010-09-14 14:40:03

+0

是的。在Safari中,如果選擇p1,則返回值 「on」爲p1,「」爲p2,如果選擇p2,則返回 「」,如果選擇p2,則返回p2。 在Firefox中,如果選擇p1或p2,則返回p1值爲「on」,p2爲「on」。他們總是在Firefox中具有「開啓」的價值。 – Daniel 2010-09-14 15:51:43