如何将数据从JavaScript发送到PHP,反之亦然?

时间:2009-12-28 06:58:41

标签: php javascript html protocols

如何将数据从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>

有没有更好的方法来做到这一点?最好的做法。

6 个答案:

答案 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请求,以发送数据。

相关问题