我有一个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* ?>
答案 0 :(得分:3)
你做不到。您需要使用 GET 或 POST 方法将该变量发送到服务器以保存在PHP变量中。
答案 1 :(得分:1)
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访问有两个基本的不同步骤**:
这就是全部,不再是魔术,中间没有任何东西:一个问题,一个答案。进一步的通信需要额外的HTTP请求(和响应)。
每当浏览器向yourscript.php发送请求时,都会收到该请求,所有参数都会被解析并且您的脚本正在启动。处理所有PHP代码部分,其他所有部分都是未知的静态数据。
最后,静态数据加上脚本的动态输出作为一个包发送回浏览器。沟通结束。
每个HTML页面可能包含一个(或多个)表单,告诉浏览器 next 请求中应包含其他信息(参数):
<form action="myscript2.php">
<input type="hidden" name="foo" value="bar">
<input type="submit" name="button" value="Send request">
</form>
单击“提交”按钮可创建一个全新的请求,添加名为foo
和button
的字段的值,并将所有内容发送(提交)到服务器。
目标PHP脚本再次运行并且可以输出一些内容,但不能输出以前提供的网页***。
**某些技术或多或少略有不同,例如延续请求或websockets,但它们远远落后于这个问题的范围。
*** JavaScript / Ajax可用于操作网页而无需重新加载,但这只是一个请求,响应和Javascript源处理客户端的响应。
答案 2 :(得分:1)
当用户访问该站点时,PHP代码在服务器上执行,然后发送给用户。另一方面,Javascript被发送给用户,然后在该用户的机器上执行。在基本定义中,这说明了前端和前端之间的区别。和&#39;后端&#39;发展。
话虽如此。您可以使用PHP将值插入到javascript代码中,因为这可能发生在服务器上,然后由用户的计算机执行。但是,您不能将javascript值传递给PHP变量(在同一个脚本/页面中),因为PHP在进入Web浏览器时已经在服务器上执行了。
正如其他人所提到的,解决方案是通过网络调用将(javascript)数据发送到服务器上的PHP脚本。您可以使用jQuery.ajax()在您的javascript中执行此操作,然后您的PHP脚本需要accept the data并对其执行操作。
答案 3 :(得分:1)
确实,有一种方法可以嵌入Js Inside PHP代码,但是,它是否适用,这是另一个问题
请参阅以下简单代码:
<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; ?>
答案 4 :(得分:0)
首先要记住php在服务器端运行,javascript在客户端运行。因此,要将变量传递给server / php,您需要通过http请求发送它。例如,你可以使用ajax:
$.post('file.php', { 'varname': 'varvalue'});
&#13;
此外,您还需要在服务器端捕获参数:
#file.php
<?php
$value = $_POST["varname"];
?>