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

时间:2013-05-26 08:30:31

标签: php mysql drop-down-menu

我有下拉列表,在用户在文本框中输入值后,将一种货币转换为另一种货币,选择货币符号(例如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列值,那将非常感激。

3 个答案:

答案 0 :(得分:0)

使用值属性

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

答案 1 :(得分: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);

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

答案 2 :(得分: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;

}