2016-04-28 77 views
0

我有一个php文件,其中有一个数字输入字段。我可以用jQuery获取输入字段的值,并将其存储在一个JavaScript变量中,但现在我想将此JavaScript变量传递给一个php变量。我能轻松实现它吗?将JavaScript变量传递给同一个php文件中的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* ?> 
+3

作为jQuery 1.7中,'.live()'方法已被弃用。使用.on()附加事件处理程序。 http://api.jquery.com/live/ – jcubic

+0

你的目标是什么后得到它..? –

回答

3

你不能。您需要使用GETPOST保存在PHP变量中的方法将该变量发送到服务器。

0

首先记住php在服务器端运行,而javascript在客户端运行。所以要传递变量到服务器/ php,你需要通过http请求发送它。例如,你可以使用AJAX:

$.post('file.php', { 'varname': 'varvalue'});

你也将需要捕捉参数你服务器端:

#file.php 
<?php 
$value = $_POST["varname"]; 
?> 
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客户端(网页浏览器)上运行而PHP运行在服务器端。

一个步骤回:

甲HTTP访问具有两个基本不同的步骤**:

  1. 客户端(的Webbrowser)发送
  2. 服务器发送一个响应

这是一个请求所有的,没有更多的魔力,没有任何的中间:一个问题,一个答案。进一步的通信需要额外的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> 

的点击提交按钮创建一个全新的请求,添加名为foobutton的字段的值,并将所有内容发送(提交)到服务器。

同样,目标PHP脚本正在运行,可能会输出一些内容,但不会在之前传送的网页上***。

**一些技术或多或少略有不同,例如延续请求或websockets,但它们远远超出了这个问题的范围。

*** JavaScript/Ajax可用于操作网页而不重新加载,但这又是一个请求,响应和Javascript源处理客户端响应。

1

当用户访问该站点时,PHP代码在服务器上执行,然后发送给用户。另一方面,Javascript被发送给用户,然后在该用户的机器上执行。在一个基本定义中,这说明了“前端”和“后端”开发之间的区别。

这就是说。您可以使用PHP将值插入到JavaScript代码中,因为这可能发生在服务器上,然后由用户的计算机执行。但是,您无法将javascript值传递给PHP变量(在相同的脚本/页面中),因为PHP在服务器上已经在您的Web浏览器上执行时已经执行了。

正如其他人提到的,解决方案是通过网络调用将(javascript)数据发送到服务器上的PHP脚本。你可以利用jQuery.ajax()在你的javascript中做到这一点,那么你的PHP脚本将需要accept the data并做一些事情。

1

事实上,有嵌入的js里面的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; ?> 
+0

谢谢..我会尝试这个人,让你知道它是否有效......干杯 –