如何将数据从JavaScript代码传递到PHP并返回。
现在,我这是一个圆的方式:
PHP到JavaScript:
我只想使用内联回显来发送数据:
<script type="text/javascript">
var data = <? echo $target_variable ?>
</script>
OR
<script type="text/javascript">
var data = <?= $target_variable ?>
</script>
JavaScript到PHP: 我会在JavaScript中创建一个表单元素,将我的数据汇总到php文件:
<script type="text/javascript">
var data = targetData;
document.write("
<form method=\"post\">
<input type=\"hidden\" value=\""+target_value+\""></input>
</form>
");
</script>
</script>
有没有更好的方法来做到这一点?最好的做法。
答案 0 :(得分:5)
如果您希望通过表单提交此数据,则无需使用Javascript创建表单。只需使用HTML创建一个不可见的表单,使用Javascript填充隐藏的字段,并在您准备好时自动提交。
<form method="post" action="process.php">
<input type="hidden" name="data" id="data" />
</form>
document.getElementById("data").value = "foo";
如果你想以ajax风格的方式发送它,我建议实现jQuery,这使得这非常容易。请注意前一个案例转换为jQuery解决方案:
$.post("process.php", {data:"foo"}, function(results){
// the output of the response is now handled via a variable call 'results'
alert(results);
});
答案 1 :(得分:3)
以下代码显示了一个ajax请求,该请求使用jquery ajax在后台提交页面中的表单。我希望这是有道理的。
<html>
<head><title>Sample</title></head>
<script language="javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script>
<script language="javascript">
function submitMe()
{
variableString = 'name='+$("#name").val()+'&location='+$("#location").val();
jQuery.ajax({
type: "POST",
url: "http://google.com/some.php",
data: variableString,
success: function(msg){
alert( "Data Saved: " + msg );
}
});
}
</script>
<body>
<form id="xyzForm">
<input type="text" id="name" name="name"/>
<input type="text" id="location" name="location"/>
<input type="button" value="submit" onClick="submitMe();"/>
</form>
</body>
</html>
答案 2 :(得分:3)
首先,您需要了解php和javascript正在不同的计算机上运行。
Php在服务器上运行,而javascript在客户端计算机上运行。这让事情变得有点无直接。我的意思是,php和javascript无法直接更改变量,因为它们不会同时运行。第一个PHP在服务器上运行,准备HTML和js并将其提供给客户端,然后在客户端计算机上运行javascript,如果javascript需要来自服务器的东西,它再次调用服务器(post,get或ajax无关紧要,它是还是一个http请求。)
所以从php到javascript,你可以在准备javascript时传递变量,在pont只有php运行和javascript没有,从javascript到php,你可以通过从客户端计算机向你的php发出请求传递变量带有一些变量的服务器。
答案 3 :(得分:2)
您可以使用GET或POST将数据从一个传递到另一个。
答案 4 :(得分:1)
使用PHP和JavaScript可以做的最好的事情是开始在PHP中使用json_encode()和json_decode()函数。
这将把数据转换为JSON,它是JavaScript Object Notation,允许您在两种语言之间传递对象。一旦你在JS中获得该对象,你就可以做一个eval。
实际上移动数据应该取决于你正在做什么,但很多时候我使用Ajax,这将是一个开始看的好地方。
答案 5 :(得分:0)
好吧,如果你想要异步交互,你可以使用XMLHTTPRequest来执行对服务器的异步POST请求,以发送数据。