0

在用户在文本框中输入值,选择货币符号(例如 USD-> AUD)然后单击转换后,我有下拉列表将一种货币转换为另一种货币,转换后的货币应输出到页面上。

这是 php 代码,它从表中的货币和汇率中获取数据库中的数据,并分配给要在下拉列表中使用的选项值。

while ($row=mysql_fetch_array($refDB)) { 

$currency=$row["currency"];
$rate=$row["rate"];     

$options.="<option/$rate/>".$currency;
}

以下是填充数据的下拉列表。到目前为止,符号正在被填充,但我不确定我是否通过下拉列表正确传递了费率,因为这些是我正在使用的值。

<select id = "convert1" width="10"> 
<option value=0>From 
<?=$options?> 
</select> 

<select id = "convert2" width="10">  
<option value=0>To 
<?=$options?> 
</select> 

用户选择“兑换货币按钮”后:

                <input type="button" name="convertCurrency" value="Convert Currency" onClick="entry.value=convert(entry);">

这是用户输入他们想要转换的值的地方:

<input type="text" id="enter" name="entry" size="18" value = "0"> 

它被带到 JavaScript 来转换货币:

function convert(entry)
{



var convert1 = document.getElementById("convert1");
convert1.options[convert1.selectedIndex].value;

var convert2 = document.getElementById("convert2");
convert2.options[convert2.selectedIndex].value;


var sum = (entry/convert1)*(convert2);

return sum;

}

虽然它返回的是“NaN”,表明它是“不是数字”,但因此我必须错误地将速率值放入下拉列表中。

$options.="<option/$rate/>".$currency;

我想我对上面的代码做错了。我曾尝试将汇率指定为货币符号旁边的隐藏值,但无济于事。如果有人可以向我展示正确的方向,通过下拉列表正确连接 mySQL 列值,那将不胜感激。

4

3 回答 3

0

已修复,我的 javascript 没有正确分配。

function convert(entry)
{   
    var e1 = entry.value;

    var convert1 = document.getElementById("convert1");
    var v1 = convert1.options[convert1.selectedIndex].value;

    var convert2 = document.getElementById("convert2");
    var v2 = convert2.options[convert2.selectedIndex].value;

    var sum = ((e1/parseFloat(v1))*parseFloat(v2));

    return sum;

}
于 2013-05-26T16:32:09.537 回答
0

使用值属性

$options.="<option value='$rate'>".$currency;
于 2013-05-26T08:52:28.173 回答
0

您的 JavaScript 代码有问题:

您将获得 id 为“convert1”的元素并将其分配给变量 convert1。在下一行中,您检索所选选项的值,但没有将其分配给变量。因此,在计算总和时,您实际上是在对 DOM 元素而不是数字进行操作。

var convert1 = document.getElementById("convert1");
convert1.options[convert1.selectedIndex].value;

var convert2 = document.getElementById("convert2");
convert2.options[convert2.selectedIndex].value;

// Divides entry of type ? with DOM element and multiplies with DOM element
var sum = (entry/convert1)*(convert2);

您必须确保使用正确的对象,为空引用添加一些验证,并在计算总和之前将值转换为整数。

于 2013-05-26T09:01:52.787 回答