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访问具有两个基本不同的步骤**:
- 客户端(的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脚本正在运行,可能会输出一些内容,但不会在之前传送的网页上***。
**一些技术或多或少略有不同,例如延续请求或websockets,但它们远远超出了这个问题的范围。
*** JavaScript/Ajax可用于操作网页而不重新加载,但这又是一个请求,响应和Javascript源处理客户端响应。
作为jQuery 1.7中,'.live()'方法已被弃用。使用.on()附加事件处理程序。 http://api.jquery.com/live/ – jcubic
你的目标是什么后得到它..? –