如何在JQuery中重新排列数组

How to rearrange an array in JQuery

本文关键字:排列 数组 新排列 JQuery      更新时间:2023-09-26

我有这个被张贴到我的脚本

Array
(
  [0] => Array
      (
          [name] => test1
          [value] => test1 value
      )
  [1] => Array
      (
          [name] => test2
          [value] => test2 value
      )
)

我要的是:

Array
(
  [0] => Array
      (
          [test1] => test1 value
      )
  [1] => Array
      (
          [test2] => test2 vlaue
      )
)

这是我用来发布数据的JQuery。有人能告诉我我需要什么来实现这个吗?

var vals = $("#post").find('input,select,textarea').serializeArray();
vals.push({
    name: 'article',
    value: CKEDITOR.instances.article.getData()
});
var qs = $.param(vals);
$.post('test.php', {
    data: vals
}, function (data) {
    if(data.success == 0) {
    }
}, 'json');
编辑:

我想要做的是简单地访问我的服务器上的每个键值,像这样:

    echo $_POST['test1'];
...

当使用$.post时,第二个参数是要发送到服务器的数据。它不像$.ajax,你传递一个带有选项的对象。

试试这个:

var vals = $("#post").find('input,select,textarea').serializeArray();
vals.push({
    name: 'article',
    value: CKEDITOR.instances.article.getData()
});
$.post('test.php', vals, function (data) {
    if(data.success == 0) {
    }
}, 'json');

从你的帖子,它看起来像你的'name'属性是恒定的,等于'article'。但是,如果article实际上是前面代码中定义的一个变量,那么这应该可以工作:

var vals = $("#post").find('input,select,textarea').serializeArray();
var newVal = {};
newVal[article] = CKEDITOR.instances.article.getData();
vals.push(newVal);