有问题传递值并使用jQuery输出它们

时间:2011-06-13 18:23:41

标签: php jquery html

这是页面:bit.ly/m5cyjx

我要做的是将select元素的值(即EUR,USD等)以及左侧文本输入(即100)的值传递给底部的表单页面。

当我提交表单时,我可以看到它只传递了文本输入和select元素的默认值。也就是说,它传递每个元素在页面加载时包含的值,而不是我输入的值。

使用jQuery $ .post。

提交表单

此外,我正在尝试在右侧文本区域中动态显示结果值。我相信PHP工作正常,但无论如何它都在这里:

<?php
//convert to selected currency from BTC
$currencySelectValue = $_POST['currencySelectValue'];
$currencyValue = $_POST['currencyValue'];
$lastPrice = $_POST['lastPrice'];

if($currencySelectValue == "USD")
{
    $convertedResult = ($currencyValue / $lastPrice);
}
else
{
    //convert currency to USD
    $convertJSON = file_get_contents("http://www.google.com/ig/calculator?hl=en&q=" . $currencyValue . $currencySelectValue . "%3D%3FUSD", true);
    $convertArr = json_decode($tickerJSON, true);
    $currencyValue = $convertArr["rhs"];
    $currencyValue = preg_replace('/[^0-9]/', '', $currencyValue);
    $convertedResult = ($currencyValue / $lastPrice);
}

echo $convertedResult;
?>

jQuery代码:

    $(document).ready(function(){
        $('#fromCurrencyValue').inlineFieldLabel({
            label: 'Currency Value'
        });
        $('#btcValue').inlineFieldLabel({
            label: 'BTC Value'
        });
        $('#currencySelect').selectmenu({
            style: 'popup',
            width: 100
        });
        $('#convertToButton').button();
        $('#convertFromButton').button();
        $('#convertToButton').click(function() {
            $.post("php/convertToForm.php", $("#convertToForm").serialize(), function(data){ 
                $('#toCurrencyValue').val(data);
            });
        });
        $('#convertFromButton').click(function() {
            $.post("php/convertFromForm.php", $("#convertFromForm").serialize(), function(data){ 
                $('#fromCurrencyValue').val(data);
            });
        });


        $("#currencySelectValue").val($("#currencySelect").val());
        $("#currencyValue").val($("#fromCurrencyValue").val());
        $("#btcValueForm").val($("#btcValue").val());
    });

任何帮助?

1 个答案:

答案 0 :(得分:2)

我想我知道你的问题是什么。查看传递给PHP脚本的数据,“currencyValue”的值将作为“货币值”传递。在您的脚本中,您有$currencyValue = $_POST['currencyValue'];,然后是$currencyValue / $lastPrice

问题是$ currencyValue是文本而不是数字。 “货币价值”/ 19.8的划分无效。

编辑:执行此操作时,jQuery代码中会设置“currencyValue”的值:$("#currencyValue").val($("#fromCurrencyValue").val());。一旦页面加载就会发生这种调用。这可能不是你想要的。相反,您应该将其移动到onclick事件处理程序。