2010-09-13 69 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