JS 请求代码
var formElement = document.getElementById("question");
var data = new FormData(formElement);
for(var pair of data.entries()) {
console.log(pair[0]+ ', '+ pair[1]);
}
$.ajax({
url:"/home/question",
type:"post",
data:data,
datatype:"json",
contentType: false,
processData: false,
success:function(data){
打印结果
手机喜好, 安卓
网购频率, 几乎每天一
网购单次时长, 0.5 小时以下
网购费用, 200 元以下
喜欢的音乐, 流行音乐
喜欢的电影, 中国
选择的装饰画种类, 大师名著
旅行频率, 1 个月一次
喜欢的季节, 春天
PHP 部分代码
public function question(){
var_dump($_POST);
if(!$this->input->is_ajax_request()){
echo json_encode(array('success'=>'error','message'=>'The request is not Ajax'));
return;
}
PHP 输出结果
array(10) {
["手机喜好"]=>
string(6) "安卓"
["网购频率"]=>
string(15) "几乎每天一"
["网购单次时长"]=>
string(15) "0.5 小时以下"
["网购费用"]=>
string(12) "200 元以下"
["喜欢的音乐"]=>
string(12) "流行音乐"
["喜欢的电影"]=>
string(6) "中国"
["选择的装饰画种类"]=>
string(12) "大师名著"
["旅行频率"]=>
string(13) "1 个月一次"
["喜欢的季节"]=>
string(6) "春天"
[0]=>
string(6) "春天"
}
不知道这个[0]
是怎么回事,有人遇到过或者这是我哪里出错了么?
1
ragnaroks 2016-11-15 11:36:08 +08:00
我是 {param:JSON_String}
后端 $param=json_decode($this->input->post('param'),TRUE); 并不会出现$param->0. |
2
mcfog 2016-11-15 11:50:31 +08:00
查问题要先要分解,或者说控制变量,这里首先应该按照 http 协议划分一下,是 js 发出去的包异常还是 php 收到的包解析异常?如果是 JS 的话,是原生 JS 的问题还是 jQuery 封装的问题? PHP 侧同理
浏览器里面看一下请求包, chrome 的话还有 copy as curl 都是你的伙伴 |
3
hanzichi 2016-11-15 11:56:00 +08:00
贴下完整代码?(包括 HTML )
|