PHP:为什么当我打印会话的内容时忽略前导零?

时间:2012-05-17 14:04:05

标签: php javascript jquery session

打印内容会话时遇到问题,因为在创建会话时,变量是字符串(从mysql字段获取的varchar):

初始变量:09680040

以警告打印或以div显示:9680040

???

PHP CODE

$query = "SELECT nombre, apellidop, apellidom, tUser FROM users WHERE ncontrol = '$numeroControl'";
$result = mysql_query($query) or die (mysql_error());
$no_of_rows = mysql_num_rows($result);
if ($no_of_rows > 0) {
    $result = mysql_fetch_array($result);
    $_SESSION['n_control'] = $user['ncontrol'];
}

JS CODE
........
alert <?php echo $_SESSION['n_control'];?>;

JQuery CODE

('#div').html(<?php echo $_SESSION['n_control']; ?>);

编辑:问题仅在显示提醒时,以及在jquery中将内容放在div上时

3 个答案:

答案 0 :(得分:5)

('#div').html(<?php echo $_SESSION['n_control']; ?>);

这将生成以下行,该行将发送到您的浏览器:

('#div').html(09680040);

这将被Javascript解析器解释为整数。只需在其周围加上引号即可使其成为字符串:

('#div').html('<?php echo $_SESSION['n_control']; ?>');

答案 1 :(得分:2)

这是一个问题。它与$_SESSIONmysql_query部分无关。

从本质上讲,您的最终JS代码将成为:

alert 09680040;

忽略明显的语法错误,Javascript会将其视为数字常量。

您必须在PHP代码中创建一个Javascript字符串以保留所有内容。使用json_encode

alert(<?php echo json_encode($_SESSION['n_control']);?>);

(无论哪种方式,您对问题的描述都是错误的,示例代码肯定不是您的实际代码。所以这是我的猜测答案..)

答案 2 :(得分:0)

尝试:

 $_SESSION['n_control'] = strval($user['ncontrol']);