将30个变量从客户端发布到服务器的最佳方法是什么?

时间:2011-06-02 18:59:53

标签: php javascript http-post client-server

哎, 我有大约30个由用户创建和修改的变量(没有一个来自输入,因此提交表单实际上不是一个选项),一旦修改完成JS函数处理变量和配偶将它们发布到控制器,这将是然后发送给模型。

现在,正如标题中所示,我的问题是我发送它们的最佳方式是什么?

时间和注意力,thnx Ido

5 个答案:

答案 0 :(得分:5)

除非它像复杂的搜索表单,否则我不会使用GET

您可以使用某种形式的AJAX或通过生成隐藏的表单并提交它来在JavaScript中POST值。

答案 1 :(得分:0)

我会使用ajax提交的表单来使用POST。您只需创建一个包含隐藏输入的表单,然后使用您喜欢的ajax库将表单作为POST请求提交给服务器。

答案 2 :(得分:0)

如果变量紧密相关,你可以将它们推入一个数组并POST它们(当然使用Javascript来构造数组)。另一种选择是命名每一个并分别发布它们吗?

POST数组如下所示:arr[]=Hello&arr[]=World

在PHP中,您可以像

一样访问它
<?php
arr = $_POST['arr'] // ["Hello", "World"]
?>

希望有所帮助!

答案 3 :(得分:0)

在POST和GET之间进行权衡。如果要导航回具有给定“变量”集的页面,GET会更好。如果您提交大量内容,POST会更好。但是,作为GET请求,POST请求不那么“有效” - 请记住这一点,并且只在您确实需要时才使用POST。

答案 4 :(得分:0)

现代浏览器和较新版本的PHP都支持JSON,如果您需要支持的浏览器或您遇到的PHP版本已经过时,您可以使用支持的库。我建议将其作为一种来回获取数据的方法。

客户端JS:

var myobject = {
  userparam: "value",
  anotherThing: "another value",
  something: "etc"
}

var serialized = JSON.stringify(myobject);

// use any AJAX technicque to POST 'serialized' back to the server

然后在服务器端:

<?php

  $myobject = json_decode( $_POST['serialized'], true );

  $myobject['userparam'] == "value"; // true

希望这有帮助!