如何使用 POST 方法将 javascript/jQuery 变量传递给 PHP [重复]

Posted

技术标签:

【中文标题】如何使用 POST 方法将 javascript/jQuery 变量传递给 PHP [重复]【英文标题】:How to pass javascript/jQuery variable to PHP using POST method [duplicate] 【发布时间】:2014-06-28 07:24:03 【问题描述】:

这是非常基本的。我要做的就是测量浏览器窗口的 html 宽度,并将该数据传递给 php 脚本,以便我可以调整传递给站点的信息。

我已经降低了 HTML 宽度部分。我只是无法使用 AJAX 将 javascript/jQuery 变量传递给 PHP 脚本。

这里是 Javascript/jQuery。它是用 PHP 编写的,以便我以后可以使用 include() 函数。

echo 
'<script> 
    htmlWidth = $("html").width();
    $.ajax(
        type: "POST",
        url: "mobileView.php",
        data: width: htmlWidth 
    ) 
</script>';

这是 PHP:

$width = $_POST['width'];
function mobileView()
    if ($width < 950)
        return true;
     else
        return false;
    

mobileView();

【问题讨论】:

如果您只是想确定是否使用移动网站,您可以使用可以在整个网络上找到的预制检测脚本。 @martynas 这不是重复的。我检查了那个帖子,但我无法在那里找到这个问题的答案。 @CaolanEvans 我正在创建的网站对某些 div 有特定的尺寸,而不是创建多个 CSS 文件,我宁愿创建两个:一个用于网站的完整版本,另一个用于,而不是仅当有人在移动设备上查看该网站时,以及当窗口大小调整为小于 950 像素时,例如当有人在 windows 和 linux 中将选项卡固定到屏幕的左侧或右侧时。 很公平。但是,如果有人在显示站点时固定窗口,除非您检测到它,否则您会遇到问题。只是一个提示。您可以使用 jQuery 的 $(window).resize(function() ...); 来处理这个问题,使用与上面相同的代码。 @CaolanEvans 是的。谢谢你。我熟悉 $(window).resize 函数。但是,我过去在 $(document).ready(function()); 中调用它时遇到了一些问题。您是否建议在 d-ready 之外调用该函数?^ 【参考方案1】:

这是可以在文件中运行的代码:

对于PHP部分,您应该将值传递给函数并调用该函数。

我猜你需要从 php 函数返回返回数据给客户端。 然后,对于 ajax 部分,您必须捕获返回数据。

<?
if(isset($_POST['width']))
    $width = $_POST['width'];

    function mobileView($width)
        if ($width < 950)
            echo 'true';
         else
            echo 'false';
        
    
    mobileView($width);

else
?>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script> 
    htmlWidth = $("html").width();
    $.ajax(
        type: "POST",
        url: "mobileView.php",
        data: width: htmlWidth , 
        success: function(data)
            console.log(data); 
        
    )
</script>

<?
;

?>

【讨论】:

谢谢。这非常有效。现在这可能是一个愚蠢的问题,但为什么“回声”打印到控制台而不是 html?我要做的是根据从ajax传递的信息将数据打印到html文件。 这段代码不会让我在php中使用include函数,它只是将所有数据返回到控制台。 @Solomon Arnett 你是什么意思在 php 中包含函数?一个文件包含这个还是这个文件包含另一个?【参考方案2】:

试试这个。

你的 AJAX

htmlWidth = $("html").width();
$.ajax(
    type: "POST",
    url: "mobileView.php",
    data: width: htmlWidth, somevar : "yes" ,
    success: function(data)
        console.log(data); 
    
)

你的 PHP

if(isset($_REQUEST['somevar']))
     $width = $_POST['width'];

    function mobileView($width)
        if ($width < 950)
            echo 'true';
         else
            echo 'false';
        
    
    mobileView($width);

【讨论】:

谢谢你的回答对我的问题很有帮助

以上是关于如何使用 POST 方法将 javascript/jQuery 变量传递给 PHP [重复]的主要内容,如果未能解决你的问题,请参考以下文章

从 Javascript 在 MVC 中为 Post 方法创建 ViewModel

如何将json POST数据作为对象传递给Web API方法?

如何在 ruby​​ on rails 和 javascript 中使用 data-post 接收数据

使用触发 javascript 验证的 POST 表单和 AJAX 登录到 PHP 文件。无法将数据存储到 PHP

如何使用javascript发出post请求

如何将 Javascript 数组发布到 C# 元组列表?