将多列数组传递到服务器


Pass Multi Column Array to Server

我有一个页面,其中包含客户端生成的数据,其格式为十五列数组。行数将根据用户输入而有所不同,总共在 1 到 200 之间。我想以有效的方式将此数组传递给我的服务器,在那里它将使用 php 插入到 MySQL 数据库中,但我不知道应该如何打包数据以进行传输。页面中的数据是使用 JavaScript 生成的,并以以下方式布局:

<div id="row1" class="row">
  <span id="entry1">User generated data.</span>
  <span id="entry2">User generated data.</span>
  <span id="entry3">User generated data.</span>
  ...
  <span id="entry15">User generated data.</span>
</div>
<div id="row2" class="row">
  <span id="entry1">User generated data.</span>
  <span id="entry2">User generated data.</span>
  <span id="entry3">User generated data.</span>
  ...
  <span id="entry15">User generated data.</span>
</div>

有人推荐吗?

我不认为多次重复相同的ID是规范的。

<div id="row1" class="row">
  <span id="entry1">User generated data.</span>
  <span id="entry2">User generated data.</span>
  ...
<div id="row2" class="row">
  <span id="entry1">User generated data.</span>

我会使用复合 ID:

<div id="row1" class="row">
  <span id="entry1_1">User generated data.</span>
  <span id="entry1_2">User generated data.</span>
  ...
<div id="row2" class="row">
  <span id="entry2_1">User generated data.</span>
  ...

此时,您可以:

  • 构建一个 POST 查询,将所有项目作为键/值: entry1_1=用户生成的数据。 ...

    这将很容易被 PHP 解析,或者:

  • 在 Javascript 中构建一个 JSON 字符串作为字典的字典{ row1: { entry1: "User generate data" }, row2: {...}

  • 您可以尝试通过提交字段来预解析 PHP 的数组喜欢这个:

    条目[1]

    [1]=用户生成的数据。

    ("条目[1][1]"是密钥的名称。PHP 应该正确解析它)。

您还可以根据创建新项目的方式,直接创建一个 POST 表单,将这样的字段附加到 DOM:

<input type="text" name="entry[7][14]" value="" class="input" />

抱歉,如果没有更好的交互设计概念,提出建议会很尴尬。