这是页面: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());
});
任何帮助?
答案 0 :(得分:2)
我想我知道你的问题是什么。查看传递给PHP脚本的数据,“currencyValue”的值将作为“货币值”传递。在您的脚本中,您有$currencyValue = $_POST['currencyValue'];
,然后是$currencyValue / $lastPrice
。
问题是$ currencyValue是文本而不是数字。 “货币价值”/ 19.8的划分无效。
编辑:执行此操作时,jQuery代码中会设置“currencyValue”的值:$("#currencyValue").val($("#fromCurrencyValue").val());
。一旦页面加载就会发生这种调用。这可能不是你想要的。相反,您应该将其移动到onclick事件处理程序。