我尝试从ajax传递数据从首页传递到我的控制器,但我只有字符串到我的控制器,所以我怎么能一个一个地分开。
这是形式:
<form class="form-horizontal form" action="<?php print base_url() ?>insertCategory" method="post" enctype='multipart/form-data'>
<div class="box-body">
<div class="form-group">
<label for="inputEmail3" class="col-sm-2 control-label">name</label>
<div class="col-sm-10">
<input type="text" name='name' required class="form-control" id="inputEmail3" placeholder="Name">
</div>
</div>
<div class="form-group">
<label for="inputEmail3" class="col-sm-2 control-label">name</label>
<div class="col-sm-10">
<input type="text" name='test' required class="form-control" id="inputEmail3" placeholder="Name">
</div>
</div>
<div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label">Category Detail</label>
<div class="col-sm-10">
<textarea id="txtEditor" ></textarea>
</div>
</div>
<div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label">Image</label>
<div class="col-sm-10">
<input type="file" name="img" required class="form-control" >
</div>
</div>
</div>
<!-- /.box-body -->
<div class="box-footer">
<button type="submit" class="btn btn-info pull-right submit">Submit</button>
</div>
<!-- /.box-footer -->
</form>
这是我的代码ajax:
$(".submit").click(function (e) {
e.preventDefault();
var data = $('.form').serialize();
var val = $("#txtEditor").Editor("getText");
var page = "<?php echo $page ?>";
var url = "<?php echo base_url(); ?>insertCategory"
$.ajax({
type: "POST",
url: url,
data:{
"data" : data
},
success: function (data) {
console.log(data);
}
});
return false;
});
这是我的控制者:
public function insertCategory()
{
if($this->session->userdata('logged_in')==1){
$data = $this->input->post('data');
var_dump($data);
这个我的数据由ajax回复:
C:\....\AdminController.php:308:string 'name=dsfdsfs&test=dfsdf' (length=23)
答案 0 :(得分:1)
请改用
var_dump($_POST);
发布与发布工作相同
答案 1 :(得分:1)
供参考,请使用以下代码。
type: "POST",
url: url,
data: $('.form').serialize(),
success: function (data) {
console.log(data);
}
使用
data: $('.form').serialize()
而不是
var data = $('.form').serialize();
data:{
"data" : data
},
答案 2 :(得分:0)
在控制器上,表单的内容将在$_POST
数组中提供。所以&#34;名称&#34;您可以使用$_POST['name']
访问表单上的字段。
尽管如此,您最好使用CodeIgniter的方法来检索此数据。
例如:
$name = $this->input->post('name');
如果出于学习目的,你想看到所有内容&#34;发布&#34;对于控制器,这将成功。
public function insertCategory()
{
if($this->session->userdata('logged_in')==1)
{
$posted = $this->input->post(); //get all $_POST items
var_dump($posted);
}
}
答案 3 :(得分:0)
使用parse_str();可以在解析字符串后返回数组
public function insertCategory()
{
if($this->session->userdata('logged_in')==1){
$data = $this->input->post('data');
parse_str($data, $parseData);
var_dump($parseData);