php - 使用 jQuery 和 PHP 从 MySQL 获取单个数值,并拒绝在 js 级别充当 int

标签 php mysql jquery

我有一个 MySQL 数据库,其中有一列数值。当我在 PHP 中查询该数据库并将 mysql_result 回显给 jQuery 时,返回的值似乎有多余的换行符和空格(根据 Firebug 和警报()实验)。

当将结果变量放入带有innerhtml的元素时,结果变量似乎按我的预期工作,但即使在尝试清除任何额外字符并运行parseInt之后,我也无法使用逻辑或数学函数来处理它...

下面是一些示例代码,但我可能做了一些非常简单的错误。

有什么想法吗?

PHP“loadxp.php”

<?php session_start();

include("dbconnect.php");
//retrieve userid from session variable
$user =  $_SESSION['userid']; 
$query = "SELECT xp FROM breadusers WHERE userid='$user'";
$link =@mysql_query($query);
if(!$link){
    die('Could not query:' . mysql_error());
}   
echo mysql_result($link, 0);
?>

Javascript:

function showXP(){
                var xP;
                var level;
                //jQuery AJAX load XP
                $.get("scripts/loadxp.php", function(data){
                    xP = data;
                    //Display XP
                    $('#xpDisplay').html(xP);//NB: WORKS AS EXPECTED
                    //Calculate level
                    level = calculateLevel(xP);
                    //Display level
                    $('#levelDisplay').html(level);//Always NaN
                });
            }

function calculateLevel(xP){
                var level;
                var xPInt;
                xP = xP.replace(/(\r\n|\n|\r| )/gm,"");//Attempt to strip out line breaks and spaces
                xPInt = parseInt(xP,10);//Always seems to return "NaN"
                alert("xP value: \"" + xP + "\"  of type: " + typeof(xP) + "\nxPInt value: \"" + xPInt + "\"  of type: " + typeof(xPInt));//xP is described as String "0", xPInt Number "NaN"
                if ( xP == 0 ) {
                    level = 1;
                } else {
                    level = Math.floor(1+Math.sqrt((xP/125) + 1));
                }
                return level;
            }

最佳答案

简短回答:使用 JSON。 PHP:

$xp = (int)mysql_result($link, 0);
echo json_encode($xp);

JavaScript:

$.getJSON('scripts/loadxp.php', function(xp) {
  alert(xp);         // 1
  alert(typeof xp);  // number
});

值得注意的是,您可以使用 JSON 来回发送任意数量的 native 类型。字符串、数字、 bool 值、null、数组和对象都受支持。

关于php - 使用 jQuery 和 PHP 从 MySQL 获取单个数值,并拒绝在 js 级别充当 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5279217/

相关文章:

jquery - 使用 jQuery 在提交后禁用按钮不会传递按钮的值

javascript - 如何在特定的 WordPress 页面上运行 JavaScript 函数?

php - 我如何在 MySQL 中搜索它并获得结果?

mysql - 是否可以使用 RMySQL 以编程方式加载 SQL 转储文件?

mysql - SQL - 使用 INSERT INTO 和 SELECT DISTINCT 导致导入 NULL 值

javascript - 如何将类 img 元素转化为表单并显示到我的数组中?

javascript - 未捕获的类型错误 : Illegal invocation in js using jQuery

php - 第二个查询没有在 php mysql 中执行

php - 包含内部函数被认为是不好的做法吗?

php - 如何从 MySQL 表中正确获取结果