发送JavaScript变量PHP变量

问题描述:

可能重复:
How to pass JavaScript variables to PHP?发送JavaScript变量PHP变量

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

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

发送到PHP变量

<?php 
$phpvariable 
?> 

中的JavaScript函数执行时,让我们说我点击一个按钮。

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

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

+1

你看过jQuery实现ajax吗?它处理大部分乱码/工作。 – Bryan

+0

我完全不知道jQuery是什么......不幸的是,谷歌,并试图找出更多关于这一点。 – mrbunyrabit

+4

@Bryan使用库之前,请学习如何去做。拿到茶杯后应该加糖。 – Zirak

乔丹已经说过您必须在服务器可以处理该值之前将javascript变量回发到您的服务器。要做到这一点,你可以编写一个提交表单的javascript函数 - 或者你可以使用ajax/jquery。 jQuery.post

也许最适合你的最简单的方法是这样的

function myJavascriptFunction() { 
    var javascriptVariable = "John"; 
    window.location.href = "myphpfile.php?name=" + javascriptVariable; 
} 

在您myphpfile.php可以使用$_GET['name']被执行你的JavaScript后。

Regards

+4

* easy *方法通常也是不正确的方法。 – rlemon

+2

先生,YOUr回答为我工作!谢谢! 我犯了错误插入你的脚本就像那样(没有函数出于某种原因),所以马页面就像野兽一样刷新。 但我把它添加到一个函数就像你有它,它的工作! 谢谢! – mrbunyrabit

+1

没问题 - 但一定要保护您的网站免受跨站点脚本/攻击。对你来说还有一个问题:为什么你必须使用JavaScript来实现这种方法?你也可以使用链接my link - 我只是感兴趣:-) – Grrbrr404

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']; 
+2

为什么downvote?这是一个很好的答案... –

+3

这个答案有什么问题? –

+1

我知道我做错了什么....我只是不知道什么... 这就是我如何插入此代码 ''' '' 然后我得到这个错误,这是一个不确定的变量... 注意:未定义指数:变量(PHP的支架) 任何想法什么即时做错了什么? – mrbunyrabit

这取决于你的页面的行为方式。如果你想这是异步发生的,你必须使用AJAX。在谷歌上试用“jQuery post()”来找到一些内容。

在其他情况下,当用户提交表单会出现这种情况,你可以在隐藏字段发送变量或追加?variableName=someValue"到结束,然后您打开的URL。:

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方法(querystring)。

+1

为什么downvote几乎每个答案?如果你看后的时间,你可以看到,可能我们都开始在同一时间写作。我认为一些答案是非常好的,因为杰尔丹布朗答案中的瑕疵。 – rcdmk

+0

要求OP“安装”并使用jQuery进行简单的AJAX调用。 – PeeHaa

+0

为什么不呢?尝试向新用户解释如何在不到一页的情况下在纯JavaScript中执行交叉浏览器AJAX调用。 – rcdmk