发送ajax帖子时没有在php codeigniter中接收数据

时间:2015-01-05 09:18:25

标签: php jquery ajax codeigniter

我正在尝试使用ajax(带有codeigniter)通过帖子发送数据,我不知道为什么,但我没有收到任何内容......

这就是我发送它的方式:

var sendData = $('#formContact').serialize();
$.ajax({
    type: 'POST',
    url: '<?php echo base_url()?>/intranet/update/updateProfile',
    data: sendData,
    dataType: 'json',
    success: function (data) 
    {
        console.log(data);
    },
    error: function (xhr, ajaxOptions, thrownError) {
        alert(xhr.status);
        alert(thrownError);
    }
});

这是我的表格的一个例子:

<form id="formContact" action="update" method="POST">
    <input class="headInput" type="text" name="userName" value="Tito"/>
    <input class="headInput" type="text" name="userLastName" value="Lancreo"/>
    <input class="headInput" type="text" name="phone[]" value="666666"/>
    <input class="headInput" type="text" name="phone[]" value="111111"/>
    <input class="headInput" type="text" name="phone[]" value="222222"/>
</form>

当我调试它时,我总是得到0 ......

[false, false, Array[0], false, null]

我的控制器:

$this->load->helper('form');
$this->load->library('form_validation');

//1 way
$ret=$this->input->post();

//2 way        
$return=$this->input->post(NULL, TRUE);

//3 way
$all=$_POST;
json_encode($all);

//4 way
$contact=$this->input->post("userName");

//return everything...
$var[0]=$return;
$var[1]=$contact;
$var[2]=$all;
$var[3]=$ret;
$var[4]=$data;
echo json_encode($var);

我该如何解决?

2 个答案:

答案 0 :(得分:0)

解决!

问题不是取代:

serialize().replace(/%5B%5D/g, '[]');

但我觉得它很有用......

我的问题是我使用图书馆进行国际化(https://github.com/bcit-ci/CodeIgniter/wiki/CodeIgniter-2.1-internationalization-i18n)并且我必须在我的网址中添加语言,即使我更改了我的路线.php

url: '<?php echo base_url()?>en/intranet/update/updateProfile'

非常感谢!

答案 1 :(得分:-1)

问题似乎是序列化本身。

从这里可以看出:

How to send serialize form data using JQuery if the input element is an array

Serialize在输入字段中有一个数组的问题,它取代了方形条:

小提琴:
http://jsfiddle.net/3vr0dtgn/

来自我的小提琴:

data = $('form').serialize();
$('div').append(data);

使用我上面提供的stackoverflow给出了解决方案(正则表达式替换某些元素)