【问题标题】:Can't convert char to int value无法将 char 转换为 int 值
【发布时间】:2013-10-31 06:36:23
【问题描述】:

下面是我的代码,

<div class="product_id" id="3"></div>

<?php
    $id = "<script>id = $('.product_id').attr('id');document.write(parseInt(id));</script>";
    echo "<br>";
    echo $id;
    echo "<br>";
    echo intval($id);
?>

如果我执行这段代码输出的是,

3

0

我不知道为什么它没有转换。我需要显示为,

3

3

谢谢

【问题讨论】:

  • 因为 intval($id) 返回 0.. 是正常的。
  • 您似乎对客户端和服务器端变量的范围有些困惑。
  • 永远不要使用intval()。转换为整数 (int)echo (int)$id 总是更快、更好、更清晰 (imo)。
  • @gwillie 我同意你的看法
  • 谢谢@gwillie...但是我的回答呢?

标签: javascript php jquery html converter


【解决方案1】:

点赞试试。你需要TypeCast点赞

echo (int)$id;

【讨论】:

    【解决方案2】:

    PHP 不知道 JavaScript 正在显示什么,因为它在浏览器中运行。看看你的源代码,你就会明白我的意思。第一个“3”实际上不是“3”。它是 JavaScript 代码。 Javascript 代码是一个字符串,它将 intval “转换”为“0”。

    【讨论】:

    • 这取决于你想做什么。此代码将不起作用。当您需要 PHP 中的“id”时,您必须使用 PHP,而不是 JavaScript。
    • 用 PHP 有什么办法吗?
    • 用正则表达式举例:preg_match('/
      ]*class="product_id"[^>]*id="([0-9]*)"/si ', $html, $result) 但是不知道这个 id 是什么,很难给你推荐。
    • HTML 是静态的还是以某种方式生成的?
    【解决方案3】:

    intval($id) 试图将"&lt;script&gt;...&lt;/script&gt;" 转换为整数,当然失败了。看看文档 (intval),“返回值”部分告诉我们:

    var 的整数值表示成功,或 0 表示失败

    还要记住echo 打印服务器端,而document.write 打印浏览器端。现在,让我们看看你的 PHP 代码:

    <div class="product_id" id="3"></div>
    <?php
        $id = "<script>id = $('.product_id').attr('id');document.write(parseInt(id));</script>";
        echo "<br>";      // prints "<br>"
        echo $id;         // prints "<script>id = $('.product_id').attr('id');document.write(parseInt(id));</script>"
        echo "<br>";      // prints "<br>"
        echo intval($id); // prints "0" (since intval failed)
    ?>
    

    这是加载到浏览器中的结果 HTML:

    <div class="product_id" id="3"></div>
    <br>
    <script>id = $('.product_id').attr('id');document.write(parseInt(id));</script>
    <br>
    0
    

    【讨论】:

    • 天啊!没问题。现在该怎么办?
    • @KarSho 我猜你想将id 从浏览器 (js) 发布到服务器 (php)。在这种情况下,您必须使用 HTML 表单或 Ajax 请求。
    • HTML 表单?如何?请告诉我好吗?
    • @KarSho 这里解释有点太复杂了。您应该阅读本教程:w3schools.com/php/php_forms.asp.
    • @KarSho 现在,如果您了解“无法将 char 转换为 int 值”的原因,您可以接受您想要的任何答案,并且可以选择投票给那些试图帮助您的帅哥。
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签