将 JavaScript 变量发送到 PHP 变量 [重复]

Posted

技术标签:

【中文标题】将 JavaScript 变量发送到 PHP 变量 [重复]【英文标题】:Send JavaScript variable to PHP variable [duplicate] 【发布时间】:2012-01-01 17:32:20 【问题描述】:

首先我认为我必须将 javascript 转换为 php,但后来我发现我不能,因为服务器和客户端执行。所以现在我只想发送一个变量

<script type="text/javascript">
function scriptvariable()
        
    var theContents = "the variable";

</script>

到 PHP 变量

<?php
$phpvariable
?>

当我点击一个按钮时,JavaScript 中的那个函数就会执行。

现在我不知道如何将该 phpvariable 分配给 JavaScript 以使用 phpvariable 在我的数据库中查找内容。我知道我可以将它添加到我的 url 或其他东西并刷新页面,但我想用 AJAX 来做,因为我可能不得不在我的网页中进一步使用这个 Ajax 方法。

那么有没有一种简单的方法可以做到这一点,而不必在我的页面上转储代码页面来做一件简单的事情?

【问题讨论】:

你研究过 jQuery 来实现 ajax 吗?它负责处理大部分杂乱的代码/工作。 我完全不知道 jQuery 是什么......生病谷歌并尝试找出更多关于它的信息。 @Bryan 在使用库之前,请先了解如何操作。拿到茶杯后应该加糖。 @Zirak 我不一定同意这一点。这取决于用户的需求。在问题中提到想要一种更简单的方法,而不需要大量额外的代码,jQuery 为你做了。有些人想造车,有些人只想换油 :) @Bryan,我同意 Zirak... jQuery 并不是最终的解决方案。研究可以做一个较小的 JSON 或 Ajax 库应该用于这个....查看microjs.com .... 使用 jQuery just 运行你的 ajax就像用电锯打开一个易拉罐一样。这只是矫枉过正。 【参考方案1】:

PHP 在服务器上运行,而 Javascript 在客户端上运行,因此您不能将 PHP 变量设置为等于 Javascript 变量而不将值发送到服务器。但是,您可以将 Javascript 变量设置为等于 PHP 变量:

<script type="text/javascript">
  var foo = '<?php echo $foo ?>';
</script>

要将 Javascript 值发送到 PHP,您需要使用 AJAX。使用 jQuery,它看起来像这样(可能是最基本的示例):

var variableToSend = 'foo';
$.post('file.php', variable: variableToSend);

在您的服务器上,您需要接收在帖子中发送的变量:

$variable = $_POST['variable'];

【讨论】:

为什么投反对票?这是一个很好的答案... 这个答案有什么问题? 我知道我做错了什么......我只是不知道是什么......这就是我插入此代码的方式&lt;script type="text/javascript"&gt; var variableToSend = 'foo'; $.post('file.php', variable: variableToSend); &lt;/script&gt;` ` ` 然后我得到这个错误,它是一个未定义的变量...注意:未定义的索引:(php 括号中的变量)知道我做错了什么吗? @mrbunyrabit 您需要在您的页面中包含 jQuery 库...否则 jQuery 使用的“$”变量将不会被定义。在“完整示例”下查看此处以了解如何将其包含在您的页面中。 docs.jquery.com/Tutorials:How_jQuery_Works. @Squeegy 简单的 ajax 事务大约需要 6 行代码【参考方案2】:

正如 Jordan 已经说过的,您必须先将 javascript 变量回传到您的服务器,然后服务器才能处理该值。为此,您可以编写一个提交表单的 javascript 函数 - 或者您可以使用 ajax / jquery。 jQuery.post

也许对你来说最简单的方法是这样的

function myJavascriptFunction()  
  var javascriptVariable = "John";
  window.location.href = "myphpfile.php?name=" + javascriptVariable; 

在你的 myphpfile.php 上你可以在你的 javascript 被执行后使用$_GET['name']

问候

【讨论】:

easy 方法通常也是不正确的方法。 先生,您的回答对我有用!谢谢!我错误地插入了您的脚本(由于某种原因没有该功能),因此页面像野兽一样刷新。但我将它添加到一个函数中,就像你拥有它并且它有效!谢谢!!! 没问题 - 但请确保保护您的站点免受跨站点脚本/攻击。还有一个问题:为什么你必须使用 javascript 来实现这种方法?您也可以使用链接 我的链接 - 我只是感兴趣 :-) 你知道吗..我不知道为什么我使用我的那种方法.....哈哈,谢谢你的帮助。猜猜这就是你的学习方式..【参考方案3】:

这取决于您的页面行为方式。如果您希望这异步发生,则必须使用 AJAX。在 Google 上试用“jQuery post()”来查找一些 tuts。

在其他情况下,如果在用户提交表单时发生这种情况,您可以在隐藏字段中发送变量或将?variableName=someValue" 附加到您打开的 URL 的末尾。 :

http://www.somesite.com/send.php?variableName=someValue

http://www.somesite.com/send.php?variableName=someValue&anotherVariable=anotherValue

这样,您可以从 PHP 访问该值:

$phpVariableName = $_POST["variableName"];

对于使用 POST 方法的表单或:

$phpVariableName = $_GET["variableName"];

对于使用 GET 方法或我上面提到的附加到 url 方法(查询字符串)的表单。

【讨论】:

为什么要对几乎每个答案都投反对票?如果您查看发布时间,您会发现我们可能都是同时开始写作的。我认为有些答案很棒,正如 Squeegy 在 Jordam Brown 的回答中所评论的那样。 要求 OP “安装”并使用 jQuery 进行简单的 AJAX 调用。 为什么不呢?尝试向新用户解释如何在不到一页的时间内用纯 JavaScript 进行跨浏览器 AJAX 调用。

以上是关于将 JavaScript 变量发送到 PHP 变量 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用 jquery ajax 将 javascript 数组变量发送到 php 脚本(获取字符串作为输出而不是数组)

将变量从 PHP 传递到 javascript 并传递到 html 表单

将多个变量从 JS 发送到 PHP

如何从 javascript 变量发送表单值并在 php 中作为整数接收? [复制]

使用 PHP 从 URL 获取值并将其发送到 javascript 变量时出错

通过 POST 将 JSON 编码的变量从 PHP 传递到 Javascript