Вопрос:

как получить данные из формы сериализации контроллера codeigniter

php jquery ajax codeigniter

3570 просмотра

4 ответа

72 Репутация автора

Я пытаюсь получить данные из прохода 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)
Автор: First Programer Источник Размещён: 04.11.2016 07:21

Ответы (4)


1 плюс

829 Репутация автора

Используйте это вместо этого,

var_dump($_POST);

оно публикуется так же, как и сообщение о работе

Автор: Waleed Ahmed Размещён: 04.11.2016 07:29

0 плюса

7301 Репутация автора

На контроллере содержимое вашей формы будет доступно в $_POSTмассиве. Таким образом, поле «имя» в вашей форме может быть доступно с помощью $_POST['name'].

Тем не менее, вам будет лучше использовать методы CodeIgniter для получения этих данных.

Например:

$name = $this->input->post('name');

Если, в целях обучения, вы хотите увидеть все, «размещенные» на контроллере, это сделает свое дело.

public function insertCategory()
{   
    if($this->session->userdata('logged_in')==1)
    {
        $posted = $this->input->post(); //get all $_POST items
        var_dump($posted);
    }
}
Автор: DFriend Размещён: 04.11.2016 12:50

1 плюс

24 Репутация автора

Для справки используйте этот код ниже.

 type: "POST",
    url: url,
    data: $('.form').serialize(),
    success: function (data) {
       console.log(data);
    }

использование

 data: $('.form').serialize()

вместо

var data = $('.form').serialize();
data:{ 
    "data"  : data
},
Автор: Louiela Размещён: 30.10.2017 06:26

0 плюса

1 Репутация автора

использовать parse_str (); который может вернуть массив после разбора строки

public function insertCategory()
{   
    if($this->session->userdata('logged_in')==1){
        $data = $this->input->post('data');
        parse_str($data, $parseData);
        var_dump($parseData);
Автор: ical135 Размещён: 13.06.2019 03:05
Вопросы из категории :
32x32