【问题标题】:Multiplying result from data query with jQuery使用 jQuery 将数据查询的结果相乘
【发布时间】:2013-05-24 13:36:20
【问题描述】:

我在 jQuery 脚本中将 php 的数据库搜索结果相乘时遇到问题。 我回应了 db 结果,它是数据库中的双重类型。所以只是一个数字,我希望它乘以一个数字和一个带数字的变量。

我尝试通过在 jQuery 输出中添加数字和变量来做到这一点 像这样:

$.post('nutritional_value.php', {value:value}, function(data){
        $('#search_result2').html(data*uneseno*10);
        });

uneseno 和 10,是我希望它与之相乘的变量和数字。 相反,我只是从数据库中获取直接值。

这是 .php 文件:

<?php

include 'connect.php';
$value = $_POST['value'];

$query = mysql_query("SELECT FAT FROM ccm WHERE NAME LIKE '$value%'");
while( $run = mysql_fetch_array($query)){

    $fat = $run['FAT'];

            echo $fat;
}

    ?>

这是脚本:

<script>
function funkcija() {
    var value = $('a').text();
    $('#hidden1').show();
    $('#jedinice_butt').click(function () {
        var odabrano = $("#dropdown option:selected").text();
        var uneseno = $("#input_jedinica").val();
        if (odabrano === "g") {
            $.post('nutritional_value.php', {
                value: value
            }, function (data) {

                $('#search_result2').html(data * uneseno * 10);
            });
        }
    });
}   
</script>

当我在输入字段中输入uneseno 变量时,它是一个数字。 控制台不显示任何错误或任何东西。

我错过了什么吗?

【问题讨论】:

  • 你可以试试(parseInt(uneseon)*parseInt(data)*10)。
  • @mehdinejati 我得到 0 作为输出,不知道我在 uneseno 中输入了什么数字

标签: php jquery mysql multiplication


【解决方案1】:

问题出在这里:

var uneseno = $("#input_jedinica").val();

val() 返回一个字符串...

解决方法:使用 parseFloat()

$.post('nutritional_value.php', {
            value: value
        }, function (data) {

            $('#search_result2').html(data * parseFloat(uneseno) * 10);
        });

【讨论】:

  • 可能数据返回 0...,使用 alert(data + "," + uneseno) 来检查 0
  • 不,它会提醒数据库中的值和我输入的值。 (0.3846,111)
  • 已修复! $('#search_result2').html(数据 * parseInt(uneseno,10));谢谢你:)
  • 我更新了我的答案,如果 $("#input_jedinica") 可以接收十进制数字,则必须使用 parseFloat() (parseInt 将截断为整数)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-17
  • 1970-01-01
  • 1970-01-01
  • 2012-01-12
  • 2014-01-18
  • 1970-01-01
  • 2014-07-06
相关资源
最近更新 更多