Jquery序列化为PHP数组
我想通过使用jQuery序列化将HTML排序的结果发送到服务器。 如果我只发送结果,则此选项有效:Jquery序列化为PHP数组,php,jquery,serialization,Php,Jquery,Serialization,我想通过使用jQuery序列化将HTML排序的结果发送到服务器。 如果我只发送结果,则此选项有效: var result = $(this).sortable('serialize'); $.ajax({ type: 'POST', url: '/cms/update/', data: result, }); 但是我尝试将一个Javascript对象发送到包含序列化“result”的服务器 在PHP中,我得到一个数组,其结果_2作为序列化对象: Array (
var result = $(this).sortable('serialize');
$.ajax({
type: 'POST',
url: '/cms/update/',
data: result,
});
但是我尝试将一个Javascript对象发送到包含序列化“result”的服务器
在PHP中,我得到一个数组,其结果_2作为序列化对象:
Array
(
[ids_1] => miti_1_ti_2_col_2
[article_id] => article_id_2
[result_1] =>
[ids_2] => miti_1_ti_2_col_1
[result_2] => article_id[]=2
)
在PHP中如何将这个结果变成数组?据我所知,“result”也是一个序列化对象
所以,首先必须取消序列化结果
然后您必须取消序列化结果2。诸如此类:
$res1 = unserialize($data);
if (isset($res1['result_2']){
$res2 = unserialize($res['result_2']);
}
更新:
我不知道数据中的结果_2是否已序列化。因此,这里有两个例子:
如果结果2未在数据中序列化:
$arr = array('id_1' => 'miti_1_ti_2_col_2',
'article_id' => 'article_id_2',
'result_1' => '',
'ids_2' => 'miti_1_ti_2_col_1'
);
$arr['result_2'] = $arr;
$test1 = serialize($arr);
$test1 = unserialize($test1);
$arr = array('id_1' => 'miti_1_ti_2_col_2',
'article_id' => 'article_id_2',
'result_1' => '',
'ids_2' => 'miti_1_ti_2_col_1'
);
$arr['result_2'] = serialize($arr);
$test2 = serialize($arr);
$test2 = unserialize($test2);
$test2['result_2'] = unserialize($test2['result_2']);
如果结果2已在数据中序列化:
$arr = array('id_1' => 'miti_1_ti_2_col_2',
'article_id' => 'article_id_2',
'result_1' => '',
'ids_2' => 'miti_1_ti_2_col_1'
);
$arr['result_2'] = $arr;
$test1 = serialize($arr);
$test1 = unserialize($test1);
$arr = array('id_1' => 'miti_1_ti_2_col_2',
'article_id' => 'article_id_2',
'result_1' => '',
'ids_2' => 'miti_1_ti_2_col_1'
);
$arr['result_2'] = serialize($arr);
$test2 = serialize($arr);
$test2 = unserialize($test2);
$test2['result_2'] = unserialize($test2['result_2']);
这个代码有效,我查过了。如果您的代码仍然无法工作,请检查JS中的结果。如果我理解正确,您需要将字符串(如action[]=1&action[]=2)转换为数组吗 如果这是正确的,您可以使用以下选项:(当$_POST[“order”]=“action[]=1和action[]=2”) 这将为您提供:
Array
(
[0] => 1
[1] => 2
)
这似乎不起作用:$res1=unserialize($\u POST);if(isset($res1['result_2']){$res2=unserialize($res1['result_2']);}print_r($res2);这篇文章的问题是,arrayjson够好吗?php有json_解码/编码。最简单的方法是首先以数组格式发送POST数据。换句话说,
ids[1]=miti_1_ti_2_colu 2&ids[2]=miti_1_ti_2_colu 1&……
等等。我认为这确实是最简单的方法,感谢使用文章id使用:preg\u split(/&?article\\u id\[\]=“,$POST[“result\u 2”],-1,preg\u split NO\u EMPTY)