发送 ajax post 时未在 php codeigniter 中接收数据
not receiving data in php codeigniter when sending ajax post
我正在尝试使用 ajax(使用 codeigniter)通过 post 发送数据,我不知道为什么但我没有收到任何东西...
我是这样发送的:
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);
我该如何解决?
问题似乎出在序列化本身。
如此处所示:
How to send serialize form data using JQuery if the input element is an array
Serialize 在输入字段中存在数组问题,它替换了方形 barckets :
fiddle :
http://jsfiddle.net/3vr0dtgn/
来自我的 fiddle:
data = $('form').serialize();
$('div').append(data);
使用我上面提供的 Whosebug 给出了解决方案(正则表达式替换某些元素)
已解决!
问题不是替换为:
serialize().replace(/%5B%5D/g, '[]');
不过我觉得很有用...
我的问题是我正在使用国际化库 (https://github.com/bcit-ci/CodeIgniter/wiki/CodeIgniter-2.1-internationalization-i18n),我必须向我的 url 添加语言,即使我更改 routes.php
url: '<?php echo base_url()?>en/intranet/update/updateProfile'
非常感谢!
我正在尝试使用 ajax(使用 codeigniter)通过 post 发送数据,我不知道为什么但我没有收到任何东西...
我是这样发送的:
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);
我该如何解决?
问题似乎出在序列化本身。
如此处所示:
How to send serialize form data using JQuery if the input element is an array
Serialize 在输入字段中存在数组问题,它替换了方形 barckets :
fiddle :
http://jsfiddle.net/3vr0dtgn/
来自我的 fiddle:
data = $('form').serialize();
$('div').append(data);
使用我上面提供的 Whosebug 给出了解决方案(正则表达式替换某些元素)
已解决!
问题不是替换为:
serialize().replace(/%5B%5D/g, '[]');
不过我觉得很有用...
我的问题是我正在使用国际化库 (https://github.com/bcit-ci/CodeIgniter/wiki/CodeIgniter-2.1-internationalization-i18n),我必须向我的 url 添加语言,即使我更改 routes.php
url: '<?php echo base_url()?>en/intranet/update/updateProfile'
非常感谢!