将javascript变量传递到同一php文件中的php变量
Pass javascript variable to php variable within the same php file
我有一个php文件,其中有一个数字输入字段。我可以用jQuery获取输入字段的值,并将其存储在一个javascript变量中,但现在我想将这个javascript变量传递给一个php变量。我能多容易地做到这一点?
<input id="custom_price" type="number" class="custom_price" name="custom_price" value="10" min="10" max="1000">
<script type="text/javascript">
jQuery("#custom_price").live("change", function () {
var user_amount = jQuery('#custom_price').val();
});
</script>
<?php $final_value = *How can I pass user_amount here* ?>
你不能。您需要使用GET或POST方法将该变量发送到服务器,以保存在PHP变量中。
PHP令人困惑,因为两个(或三个)不同的作用域在同一源代码文件中运行。
您的示例具有简单的PHP:
<?php $final_value = *How can I pass user_amount here* ?>
纯HTML:
<input id="custom_price" type="number" class="custom_price" name="custom_price" value="10" min="10" max="1000">
<script type="text/javascript">
</script>
和纯JavaScript:
jQuery("#custom_price").live("change", function () {
var user_amount = jQuery('#custom_price').val();
});
HTML和JavaScript在客户端(web浏览器)运行,而PHP在服务器端运行。
后退一步:
HTTP访问有两个基本的不同步骤**:
- 客户端(Webbrowser)发送请求
- 服务器发送响应
仅此而已,没有更多的魔法,没有任何介于两者之间的东西:一个问题,一个答案。进一步的通信需要额外的HTTP请求(和响应)。
每当浏览器向yourscript.php发送请求时,该请求就会被接收,所有参数都会被解析,脚本就会启动。所有PHP代码部分都经过处理,其他部分都是未知的静态数据。
最后,静态数据加上脚本的动态输出将作为一个包发送回浏览器。通信结束。
每个HTML页面可能包含一个(或多个)表单,告诉浏览器下一个请求中应包含附加信息(参数):
<form action="myscript2.php">
<input type="hidden" name="foo" value="bar">
<input type="submit" name="button" value="Send request">
</form>
单击提交按钮将创建一个全新的请求,添加名为foo
和button
的字段的值,并将所有内容发送(提交)到服务器。
同样,目标PHP脚本正在运行,可以输出一些内容,但不能在之前交付的网页上输出***。
**有些技术的工作方式或多或少略有不同,比如继续请求或websocket,但它们远远落后于这个问题的范围。
***JavaScript/Ajax可以用来在不重新加载网页的情况下操作网页,但这同样只是一个请求、响应和JavaScript源在客户端处理响应。
当用户访问网站时,PHP代码在服务器上执行,然后发送给用户。另一方面,Javascript被发送给用户,然后在该用户的机器上执行。在基本定义中,这说明了"前端"answers"后端"开发之间的区别。
话虽如此。您可以使用PHP将值插入javascript代码中,因为这可能发生在服务器上,然后由用户的机器执行。但是,您不能将javascript值传递给PHP变量(在同一脚本/页面内),因为当PHP到达您的web浏览器时,它已经在服务器上执行了。
正如其他人所提到的,解决方案是通过网络调用将(javascript)数据发送到服务器上的PHP脚本。您可以在javascript中使用jQuery.ajax()来实现这一点,然后您的PHP脚本将需要接受数据并对其进行处理。
事实上,有一种方法可以在PHP代码中嵌入Js,但是,它是否适用,这是的另一个问题
请参阅以下简单代码:
<input id="custom_price" type="number" class="custom_price" name="custom_price" value="10" min="10" max="1000">
<?php $final_value ="<script type='"text/javascript'">
var e = document.getElementById('custom_price').value;document.write(e); </script>";
echo $final_value; ?>
首先记住php在服务器端运行,javascript在客户端运行。因此,要将变量传递给server.php,您需要通过http请求发送它。例如,您可以使用ajax:
$.post('file.php', { 'varname': 'varvalue'});
此外,您还需要在服务器端捕获参数:
#file.php
<?php
$value = $_POST["varname"];
?>
- 将PHP变量传递给jQuery时遇到问题
- 通过javascript重定向html传递php变量
- 如何在php变量中嵌入JQuery代码
- 在javascript函数中使用php变量
- 将地理编码结果转换为php变量以发布到mysql数据库
- 如何在提交表单时将PHP变量传递到Javascript cookie中
- 从Javascript和Php变量创建Html模板文档
- 如何将php变量作为javascript中列表的元素
- 将PHP变量分配给PHP数组
- 如何在没有ajax的情况下将javascript动态数据发送到php变量
- 在Javascript甜甜圈图的PHP变量中引用PHP变量
- 使用javascript访问php变量
- 在Javascript文件中获取PHP变量
- 如何为Javascript数组()的使用准备PHP变量
- 如何获取PHP变量数据并将其存储在JavaScript变量中
- Javascript变量到PHP变量-如果语句不起作用,则发布
- 通过Javascript验证PHP变量
- 如何将Ajax数据值分配给PHP变量
- 如何在 bootsrap 完整日历中使用 PHP 变量
- 在javascript中调用PHP变量