我正在尝试使用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);
我该如何解决?
答案 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给出了解决方案(正则表达式替换某些元素)