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

Php 什么';将30个变量从客户端发布到服务器的最佳方式是什么?,php,javascript,http-post,client-server,Php,Javascript,Http Post,Client Server,哎,, 我有大约30个由用户创建和修改的变量(其中没有一个来自输入,因此提交表单不是一个真正的选项),一旦修改完成JS函数,处理变量并将其发布到控制器,然后控制器将发送到模型 现在,正如标题所示,我的问题是,我发送它们的最佳方式是什么 对于时间和注意力, 我不会使用GET,除非它类似于一个复杂的搜索表单 您可以通过使用某种形式的AJAX或生成一个隐藏表单并提交来在JavaScript中发布值。我不会为此使用GET,除非它类似于一个复杂的搜索表单 您可以使用某种形式的AJAX或生成一个隐藏表单并提

哎,, 我有大约30个由用户创建和修改的变量(其中没有一个来自输入,因此提交表单不是一个真正的选项),一旦修改完成JS函数,处理变量并将其发布到控制器,然后控制器将发送到模型

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

对于时间和注意力,
我不会使用
GET
,除非它类似于一个复杂的搜索表单


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

我不会为此使用
GET
,除非它类似于一个复杂的搜索表单


您可以使用某种形式的AJAX或生成一个隐藏表单并提交,在JavaScript中发布值。

我会使用使用AJAX提交表单的帖子。您只需创建一个带有隐藏输入的表单,然后使用您喜爱的ajax库将表单作为POST请求提交到服务器。

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

如果变量紧密相关,您可以将它们放入数组并进行POST(当然可以使用Javascript构建数组)。另一种选择是将它们分别命名并发布

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

在PHP中,您可以像

<?php
arr = $_POST['arr'] // ["Hello", "World"]
?>


希望有帮助

如果变量紧密相关,您可以将它们放入数组中并发布它们(当然可以使用Javascript构建数组)。另一种选择是将它们分别命名并发布

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

在PHP中,您可以像

<?php
arr = $_POST['arr'] // ["Hello", "World"]
?>


希望有帮助

在POST和GET之间权衡一下。如果要导航回具有给定“变量”集的页面,则GET更好。如果你提交了大量的内容,帖子会更好。然而,POST请求不如GET请求“有效”——记住这一点,只有在您真正需要时才使用POST。

在POST和GET之间权衡一下。如果要导航回具有给定“变量”集的页面,则GET更好。如果你提交了大量的内容,帖子会更好。但是,POST请求不如GET请求“有效”——记住这一点,只有在您真正需要时才使用POST。

现代浏览器和更新版本的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

现代浏览器和较新版本的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

GET和POST查询通常会起作用。但是如果有“冗长”的文本,那么就使用POST,因为大多数浏览器和服务器对URL都有长度限制。你能展示一下这些变量是如何存储的吗?我假设这里真正的问题是,将30个变量连接到一个查询字符串中以进行发布的最佳方法是什么?GET和POST查询通常都能做到这一点。但是如果有“冗长”的文本,那么就使用POST,因为大多数浏览器和服务器对URL都有长度限制。你能展示一下这些变量是如何存储的吗?我想这里真正的问题是,将30个变量连接到一个查询字符串中以供发布的最佳方法是什么?如果之前没有阅读您的答案,那么值得一提的是,为什么您不使用GET-Through。。。我认为没有理由不这样做,除非变量相当长,或者在应用程序上下文中有语义意义。好问题。要正确地回答这个问题,您必须了解REST协议(HTTP是)。GET用于检索数据,POST用于更新数据,在PHP中,您可以互换使用它们,但这不一定是一件好事。如果你有一个包含30个参数的页面,我猜它会更新一些东西(所以POST),或者它是一个超级复杂的搜索表单(所以GET)。可变长度也是一个问题,但这是问题的根源。这也解释了为什么GET通常不需要很长。+1用于澄清。我明白你的意思并同意你的看法。我是否可以在讨论中补充一点,即POST呼叫服务器两次,而GET呼叫服务器一次,我担心这可能会延长我等待回复的时间。我理解你的观点,因为这是一个相当长的过程,不管怎样,我会尝试使用POST,这只是另一件事,在阅读你的答案之前,有必要问一下你为什么不使用GET THOUGHT。。。我认为没有理由不这样做,除非变量相当长,或者在应用程序上下文中有语义意义。好问题。要正确地回答这个问题,您必须了解REST协议(HTTP是)。GET用于检索数据,POST用于更新数据,在PHP中,您可以互换使用它们,但这不一定是一件好事。如果你有一个包含30个参数的页面,我猜它会更新一些东西(所以POST),或者它是一个超级复杂的搜索表单(所以GET)。可变长度也是一个问题,但这是问题的根源。这也解释了为什么GET通常不需要很长。+1用于澄清。我明白你的意思并同意你的看法。我是否可以在讨论中补充一点,即POST呼叫服务器两次,而GET呼叫服务器一次,我担心这一点