将 JavaScript 变量发送到 PHP 变量

IT技术 php javascript ajax variables
2021-01-29 05:46:37

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

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

到一个 PHP 变量

<?php
$phpvariable
?>

当假设我单击一个按钮时,JavaScript 中的该函数就会执行。

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

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

3个回答

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'];
这个答案有什么问题?
2021-03-11 05:46:37
@Squeegy 简单的 ajax 事务大约需要 6 行代码
2021-03-14 05:46:37
为什么投反对票?这是一个很好的答案...
2021-03-19 05:46:37
@mrbunyrabit 您需要在您的页面中包含 jQuery 库……否则将不会定义 jQuery 使用的“$”变量。在“完整示例”下查看此处以了解如何将其包含在您的页面中。docs.jquery.com/Tutorials:How_jQuery_Works
2021-03-26 05:46:37
我知道我做错了什么......我只是不知道是什么......这就是我插入这段代码的方式 <script type="text/javascript"> var variableToSend = 'foo'; $.post('file.php', {variable: variableToSend}); </script> ` <?php $variable = $_POST['variable']; ?>` ` 然后我得到这个错误,它是一个未定义的变量... 注意:未定义的索引:变量在(php 括号)中知道我做错了什么吗?
2021-04-03 05:46:37

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

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

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

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

问候

简单的方法是经常也是不正确的做法。
2021-03-13 05:46:37
先生,您的回答对我有用!谢谢!我犯了这样的错误(由于某种原因没有插入您的脚本),因此页面像野兽一样刷新。但我将它添加到一个函数中,就像你拥有它一样,它起作用了!谢谢!!!
2021-03-19 05:46:37
没问题 - 但请确保保护您的站点免受跨站点脚本/攻击。再问你一个问题:为什么你必须使用 javascript 来实现这种方法?您也可以使用链接<a href="myphpfile.php?name=John">我的链接</a> - 我只是感兴趣:-)
2021-03-28 05:46:37
你知道什么......我不知道为什么我使用我的那种方法......哈哈,谢谢你帮助我。猜猜这就是你学习的方式..
2021-03-30 05:46:37

这取决于您的页面的行为方式。如果您希望这异步发生,则必须使用 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 方法的表单(查询字符串)。

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