首先我认为我必须将JavaScript转换为PHP,但后来我发现我不能因为服务器和客户端执行。所以现在我只想发送一个变量
<script type="text/javascript">
function scriptvariable()
{
var theContents = "the variable";
}
</script>
到PHP变量
<?php
$phpvariable
?>
当我说点击一个按钮时,JavaScript中的那个函数就会执行。
现在我不知道如何将phpvariable分配给JavaScript,以使用phpvariable来查找我的数据库中的内容。我知道我可以将它添加到我的URL或某些东西并刷新页面,但我想用AJAX来做,因为我可能必须在我的网页中进一步使用这个Ajax方法。
有没有一种简单的方法可以做到这一点,而不必在我的页面上转储代码页面来做一件简单的事情?
答案 0 :(得分:66)
PHP在服务器上运行,Javascript在客户端上运行,因此您无法将PHP变量设置为等于Javascript变量而不将值发送到服务器。但是,您可以将Javascript变量设置为等于PHP变量:
<script type="text/javascript">
var foo = '<?php echo $foo ?>';
</script>
要向PHP发送Javascript值,您需要使用AJAX。使用jQuery,它看起来像这样(最基本的例子可能):
var variableToSend = 'foo';
$.post('file.php', {variable: variableToSend});
在您的服务器上,您需要接收帖子中发送的变量:
$variable = $_POST['variable'];
答案 1 :(得分:45)
正如Jordan已经说过,在服务器处理该值之前,你必须将javascript变量发回服务器。要做到这一点,您可以编写提交表单的javascript函数 - 或者您可以使用ajax / jquery。 jQuery.post
也许最简单的方法就是这样
function myJavascriptFunction() {
var javascriptVariable = "John";
window.location.href = "myphpfile.php?name=" + javascriptVariable;
}
在myphpfile.php上,您可以在执行javascript后使用$_GET['name']
。
此致
答案 2 :(得分:3)
这取决于您的网页的行为方式。如果您希望异步发生,则必须使用AJAX。在Google上尝试“jQuery post()”以找到一些内容。
在其他情况下,如果用户提交表单时会发生这种情况,您可以在隐藏字段中发送变量,或者将?variableName=someValue"
附加到您打开的网址的末尾。 :
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方法(查询字符串)。