【问题标题】:Can't convert a string to an integer无法将字符串转换为整数
【发布时间】:2012-10-22 07:53:44
【问题描述】:

我正在动态创建一些这样的标签:

$('#marker').before('<div class ="file_up" id="bloc_3"></div>');

然后,我从 id 中获取数字:

$('.file_up').live("click",function() 
{
    var address  = $(this).att('id');
    var substr  = address.split("_");
    var suffix = substr.pop("_");

    $.ajax({
        url: "xxxx.php",
        type: "POST",
        data: "suff="+parseInt(suffix),
        cache: false,
        success: function (res){ alert(res);}
    })

}

然后,在 php 文件中,我执行如下操作:

<?php

$suff= intval($_POST['suff']);
$x=4;
echo $suff+$x;

?>

无论我尝试什么,我得到的不是 7 的总和,而是两个字符串的串联,如下所示:“34”。

不知道该怎么办。

任何帮助将不胜感激。

【问题讨论】:

  • 您是否尝试过将$suff 转换为这样的整数:$suff = (int)$_POST['suff']
  • 这实际上是您使用的代码吗?
  • 我不知道pop() 带了任何参数?
  • @AnuragUniyal jQuery (1.7+?) 允许使用$(this).data('id');
  • $suff+$x 无法进行串联; PHP 使用. 进行连接,而不是+

标签: php javascript ajax string integer


【解决方案1】:

试试这个:

 $suff = (int) $_POST['suff'];
 $x = 4;
 echo $suff + $x;

【讨论】:

  • var_dump(intval("3"));int(3) -- 整数 3。问题出在其他地方。
  • 是的,我尝试了这一点(比如将变量乘以 1 以强制转换,因为我在这里读到了某处)。我相信数据 ID 是要走的路。我会尝试一下,看看会发生什么。
  • 由于所有 post 变量都是以文本形式发送的,并且您在服务器上收到“3”,因此问题与 javascript/html 无关,必​​须是 php 问题。
猜你喜欢
  • 2015-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多