Php 下拉列表值与mySQL值链接问题

Php 下拉列表值与mySQL值链接问题,php,mysql,drop-down-menu,Php,Mysql,Drop Down Menu,用户在文本框中输入一个值,选择货币符号(例如USD->AUD),然后单击convert(转换),转换后的货币应输出到页面上,我有将一种货币转换为另一种货币的下拉列表 这是php代码,它从表currency和rate中获取数据库中的数据,并分配给下拉列表中要使用的选项值 while ($row=mysql_fetch_array($refDB)) { $currency=$row["currency"]; $rate=$row["rate"]; $options.="<opt

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

这是php代码,它从表currency和rate中获取数据库中的数据,并分配给下拉列表中要使用的选项值

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

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

$options.="<option/$rate/>".$currency;
}
虽然它返回的是“NaN”,表明它是“不是一个数字”,因此我必须将速率值错误地放入下拉列表中

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

我认为我对上述代码做了一些错误的处理。我尝试将汇率指定为货币符号旁边的隐藏值,但没有效果。如果有人能告诉我正确的方向,通过下拉列表正确连接mySQL列值,我将不胜感激。

使用value属性

$options.="<option value='$rate'>".$currency;
$options.=''.$currency;

您的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);

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

修复,我的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;

}

对不起,我已将输入代码添加到问题中。这只是用户输入的值,现在我只是将其设置为使用转换后的值更新同一个框。我尝试过parseInt,但仍然得到“NaN”,这两个转换值不应该是货币吗?为什么要将它们解析为整数?您必须转换文本框中的值,然后进行转换。哦,对不起,是的,当然,将它们作为浮点和条目传递。它仍然会导致“NaN”错误一切都很好,我已经解决了,我会很快为其他人发布答案,只是javascript变量的一个简单错误谢谢你的帮助僵尸猎人!
$options.="<option/$rate/>".$currency;
$options.="<option value='$rate'>".$currency;
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);
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;

}