jQuery到PHP-序列化字符串

jQuery到PHP-序列化字符串,php,jquery,string,codeigniter,serialization,Php,Jquery,String,Codeigniter,Serialization,我目前正在使用AJAX'ing登录表单 var data = $(this).serialize(); 这是我正在发送的数据,我通过PHP使用Codeigniter获得这些数据,如下所示: $ajax = $this->input->post('data'); 这将返回您期望的username=john&password=doe 如何将其转换为数组?我尝试过执行unserialize(),但结果为空。我相信您可以使用PHP的parse\u str()函数: 我相信您可以使用PHP

我目前正在使用AJAX'ing登录表单

var data = $(this).serialize();
这是我正在发送的数据,我通过PHP使用Codeigniter获得这些数据,如下所示:

$ajax = $this->input->post('data');
这将返回您期望的
username=john&password=doe


如何将其转换为数组?我尝试过执行
unserialize()
,但结果为空。

我相信您可以使用PHP的
parse\u str()
函数:


我相信您可以使用PHP的
parse_str()
函数:

使用parse_str()

使用parse_str()


简短的回答是用
parse_str

parse_str($ajax, $array);
$array === array('username'=>'john', 'password'=>'doe');
但是,发送ajax数据的方式有点奇怪。为什么要序列化为formencoded字符串并将该字符串作为值发送到“data”参数?你为什么不直接寄呢?然后您可以使用
$this->input->post('username')=='john'
,而无需额外的反序列化级别

例如,请执行以下操作:

$.post(url, $(form).serialize());
而不是这个(你似乎在做:

$.post(url, {data:$(form).serialize()});

简短的回答是使用
parse_str

parse_str($ajax, $array);
$array === array('username'=>'john', 'password'=>'doe');
但是,发送ajax数据的方式有点奇怪。为什么要序列化为formencoded字符串并将该字符串作为值发送到“data”参数?为什么不直接发送?然后可以使用
$this->input->post('username')==='john'
,而无需额外的反序列化级别

例如,请执行以下操作:

$.post(url, $(form).serialize());
而不是这个(你似乎在做:

$.post(url, {data:$(form).serialize()});

我想我们可以使用普通请求,它是在ajax的请求类型上进行防御的,使用GET或POST,然后在php中我们可以使用普通POST,比如
$\u POST['username']
$\u GET['username']
我们不必使用函数来取消序列化,对于使用CI的验证,只需像正常使用一样调用,
$this->input->post('username')
,我错了吗?

我们可以使用普通请求,它是对来自ajax的请求类型进行防御的,使用GET或post,然后在php中我们可以像正常的post一样使用,
$\u post['username']
$\u GET['username']
我们不必使用函数来取消序列化,对于使用CI的验证,只需像正常使用一样调用,
$this->input->post('username')
,我错了吗?

只需如下使用

<?php $username = $this->input->post('username');?>
<?php $password= $this->input->post('password');?>

您可以使用上述变量执行任何操作

只需使用以下命令

<?php $username = $this->input->post('username');?>
<?php $password= $this->input->post('password');?>


你可以用上面的变量做任何事情

也许再试一次,我刚刚试过演示,效果正如预期。恩,这是我的
parse_str
之前的一个打字错误!也许再试一次,我刚刚试过演示,效果如预期。恩,这是我的
parse_str
之前的一个打字错误!可能回答了你的问题对你的问题的正确回答