Data returning with space

Asked

Viewed 96 times

0

I’m making a call ajax with jQuery in a controller on CodeIgniter. The problem is that when the jQuery returns me the data, it is coming with some spaces in front of the result, getting for example: (ESPAÇO) (ESPAÇO) (ESPAÇO) sucesso. The problem does not know where it can be, because the model and controller are correct:

Model

public function AdicionarAoCarrinho($codigo){

            $this->db->where('estoque > ', $this->limiteEstoque);
            $this->db->where('codigo', $codigo);

            $produto = $this->db->get('produtos');

            if($produto->num_rows() > 0){


            if(!$this->session->userdata('session_user')){

               $sessao =  $this->session->set_userdata('session_user', md5(time()+rand(32401, 460312)));

            }else{

                $sessao = $this->session->userdata('session_user');
            }

            $dataProdutoCarrinho = array(
                                                                'id_session'=>$sessao,
                                                                'id_produto'=>$codigo
                                                                );

                if($this->db->insert('carrinho', $dataProdutoCarrinho)){

                    return 'sucesso';

                }else{

                    return 'erro';
                }

            }else{

                return 'estoque';
            }
        }

Controller

public function adicionar_carrinho(){

        if($this->input->post('codigo')){

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

            echo $this->produto_model->AdicionarAoCarrinho($codigo);
        }
    }

jQuery

<script>
    $(document).ready(function(){

        $("a.botao_comprar").click(function(){

            var codigo = $(this).attr('codigo');
            var baseURL = $("#baseURL").val();

            $.ajax({

                url: baseURL+'produto/adicionar_carrinho',
                type: 'POST',
                data: {codigo: codigo},

                success:function(callback){

                    alert(callback); //Coloquei o alert para ver, e nele sai os espaços e mesmo que saia "sucesso" ele me retorna o erro do ultimo else

                    if(callback == 'estoque'){

                        swal("Desculpe...", "Mas o produto que você está tentando comprar, não temos no estoque ;(", "error");

                    }else if(callback == 'sucesso'){

                        swal("Parabéns", "o produto foi adicionado com sucesso ao carrinho", "success");

                    }else{

                        swal("Oops...", "Ocorreu um erro desconhecido ao adicionar o produto no carrinho. Tente novamente, se o problema continuar, entre em contato conosco.", "error");

                    }
                }
            });
        })
    })
    </script>
  • 1

    As a palliative solution try to use $.Trim(callback)

  • the $.Trim() worked, only I wanted to know why of this problem

  • That’s why I didn’t put it as an answer. I’ve never used this framework.

  • An achism, would you put the dataType in the request?

1 answer

0


Additionally check the presence of spaces before and after the PHP code opening and closing tags ( <?php .. ?> ) in your project files. What is recommended is that the closing tag (?>) is not used at the end of the files.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.