首页 > 解决方案 > 如何将 javascript 变量给出的值传递给 PHP 变量?

问题描述

我希望在 PHP 函数中使用screen width screen height color depth和之类的变量。pixel depth基本上我想做的是当用户进入我的网页时,例如:localhost/try.php我想知道上面提到的所有客户端详细信息,而不需要设置 cookie 或会话属性或获取参数。是的,当然无需重新加载页面。我知道php但不知道 AJAX,所以任何人都可以帮助我吗?

标签: phpajax

解决方案


如果我理解正确,您的问题是当用户访问您的页面时(例如 try.php)如何将 javascript 变量(例如 screen.width screen.height)传递给 PHP 部分,以便您可以将其作为 PHP 变量。

这是一个有效的解决方案。

尝试.php

<!DOCTYPE html>
<html>
<head>
</head>
<body>
    <form action="" method="POST" name="myForm" id="myForm">
        <input type="hidden" id="screenWidth" name="screenWidth">
        <input type="hidden" id="screenHeight" name="screenHeight">
    </form>

    <script type="text/javascript">
        document.getElementById("screenWidth").value = screen.width;
        document.getElementById("screenHeight").value = screen.height;

        function autoSubmit () 
        {
            let form = document.getElementById("myForm");
            form.submit();
        }
        window.onload = autoSubmit;
    </script>
</body>
</html>

<?php
    if($_SERVER["REQUEST_METHOD"] === 'POST')
    {
        if(!empty($_POST["screenWidth"]))
        {   
            $screenWidth = $_POST["screenWidth"];
            echo $screenWidth; // see if it gets the screen.width
        }
        if(!empty($_POST["screenHeight"]))
        {   
            $screenHeight = $_POST["screenHeight"];
            echo $screenHeight; // see if it gets the screen.height
        }
    }
?>

它基本上是操作 DOM 并将输入值的值更改为 screen.width 和 screen.height ,然后在窗口加载时自动提交表单。

如果服务器接收到 HTTP POST 方法输入,那么它会检查 POST 输入的名称并将其保存到每个 PHP 变量中。


推荐阅读