【问题标题】:how to pass js integer value as integer in PHP? [duplicate]如何在 PHP 中将 js 整数值作为整数传递? [复制]
【发布时间】:2015-04-24 20:20:14
【问题描述】:
<script type="text/javascript">
    var int_val = 111;
</script>

<?php
    $js_int_val_in_php ='<script>document.write(int_val);</script>';
    echo $js_int_val_in_php; // 111
    echo '<br>';
    echo gettype($js_int_val_in_php); // string  
    // but I want it as an integer
    // even settype(); does not help!!
?>

任何人都知道如何在 PHP 中将 js 整数值作为整数传递?我喜欢 jQuery,但在这种情况下,请不要 jQuery 建议。

【问题讨论】:

  • 你必须要么提交表单,要么发出 ajax 请求(即XMLHttpRequest
  • 您不能将 java 脚本变量值分配给 php 变量。这是因为 PHP 是一种服务器端脚本语言,而 javascrpt 是客户端。如果您需要 php 中的 JavaScript 值用于服务器端执行,那么您可以使用 ajax
  • 欢迎来到 SO。您可以转换该值。但我认为你对这应该如何工作有错误的想法,JavaScript 在浏览器中执行而不是在 PHP 中。

标签: javascript php json


【解决方案1】:

您将服务器端变量与客户端变量混淆了,

你需要把数据传给服务器,否则服务器只知道变量名,这是一个字符串

<script>
var int_val=111;
function doAjax()
{
var xmlhttp;
xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET","index.php?v="+int_val,true);
xmlhttp.send();
}
</script>
<a href="javascript:doAjax();">click here to send data to server</a>
<?php
$int_val=''
if (isset($_GET['v']))
{$int_val=intval($_GET['v']);}
//now you can access the `int_val` after the JS function ran
?>

【讨论】:

    【解决方案2】:

    我认为问题已经在这里提出:Unable to convert string to integer in PHP

    如果你愿意,你也可以在这里查看 PHP 类型转换:http://php.net/manual/en/language.types.type-juggling.php#language.types.typecasting

    也许有这样的东西?

    <script type="text/javascript"> var int_val = 111</script>
    <?php
        $js_int_val_in_php = '<script>document.write(int_val);</script>';
        echo $js_int_val_in_php; // 111
        echo '<br>';
        $toInt = (int) $js_int_val_in_php;
        echo '<br>';
        echo gettype($toInt); // string  
    ?>
    

    我还没有测试过,但我确信类型转换应该可以解决问题,不要忘记查看我首先发送的 URL

    【讨论】:

    • 总是一个快乐的人 :) - 我会在下次发布之前测试,不是 100% 确定
    • 这似乎有效,您实际上并没有对int_val进行类型转换,而是在尝试对字符串&lt;script&gt;document.write(int_val);&lt;/script&gt;进行类型转换。 $toInt 实际上等于 0。尝试执行 var_dump($toInt) 来查看。
    • patrick,你是对的,它给我的类型是整数,但值为零。与Torean的链接相同的问题
    猜你喜欢
    • 1970-01-01
    • 2013-09-18
    • 2011-04-28
    • 2020-02-17
    • 2015-06-29
    • 1970-01-01
    • 2012-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多