使用jQuery将多个值发布到服务器

时间:2016-03-03 16:49:30

标签: php jquery

以下脚本会将$_POST['id']=[1,2,3]发送到服务器。

相反,我希望将$_POST['id']=[[1,'extra1'],[2,'extra2'],[3,'extra3']]发送到服务器,或将$_POST['id']=[1,2,3]$_POST['extra']=['extra1','extra2','extra3']发送到服务器。

我可以通过迭代表来实现,但HTML是PHP生成的,而我想修改HTML以尽可能简单地做到这一点。

这是如何最好地完成的?

https://jsfiddle.net/5a8cLt08/2/

$('#go').click(function() {
  var data = $('#mytable tbody input.cb:checked').serializeArray();
  console.log('data', data);
  $.post('ajax.php', data, function(json) {
    console.log('json', json);
  }, 'json');
});

<table id='mytable'>
  <tbody>
    <tr>
      <td>
        <input class="cb" type="checkbox" value="1" secondValue="extra1" name="id[]">
      </td>
      <td>bla1</td>
      <td>
        <input class="cb" type="checkbox" value="2" secondValue="extra2" name="id[]">
      </td>
      <td>bla2</td>
      <td>
        <input class="cb" type="checkbox" value="3" secondValue="extra3" name="id[]">
      </td>
      <td>bla3</td>
    </tr>
  </tbody>
</table>
<button id="go">Go</button>

1 个答案:

答案 0 :(得分:1)

<input class="cb" type="checkbox" value="1" name="id[]">
<input type="hidden" name="extras[1]" value="extra1" />

这将使用关联数组id =&gt;填充$ _POST ['extras']。额外。 这当然是假设您通过PHP循环填充它并且可以轻松实现上述目的。

如果不是,您可能需要使用JavaScript从输入中提取所需的属性。

<强>更新

您还可以将JSON值传递给此。理想情况下,您希望对要作为值传递的数据执行$valueData = json_encode

输入看起来像:

    <input class="cb" type="checkbox" value='{ "id": 1, "extras": "extra1"  }' name="id[]">

你的$ _POST将是这样的:

$_POST["id"] = [ 
    '{ id: 1, extras: "extra1" }', ... 
]

您可以通过以下方式获取所需数据:

$data = json_decode($_POST["id"][0]);

$id = $data->id; $extra = $data->extras;