将JavaScript变量发送到PHP变量

时间:2011-11-19 01:19:00

标签: php javascript ajax variables

  

可能重复:
  How to pass JavaScript variables to PHP?

首先我认为我必须将JavaScript转换为PHP,但后来我发现我不能因为服务器和客户端执行。所以现在我只想发送一个变量

<script type="text/javascript">
function scriptvariable()
{        
    var theContents = "the variable";
}
</script>

到PHP变量

<?php
$phpvariable
?>

当我说点击一个按钮时,JavaScript中的那个函数就会执行。

现在我不知道如何将phpvariable分配给JavaScript,以使用phpvariable来查找我的数据库中的内容。我知道我可以将它添加到我的URL或某些东西并刷新页面,但我想用AJAX来做,因为我可能必须在我的网页中进一步使用这个Ajax方法。

有没有一种简单的方法可以做到这一点,而不必在我的页面上转储代码页面来做一件简单的事情?

3 个答案:

答案 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方法(查询字符串)。