如何使用 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 接收数据