jQuery到PHP-序列化字符串
我目前正在使用AJAX'ing登录表单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
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
之前的一个打字错误!可能回答了你的问题对你的问题的正确回答