Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rockrgo

envio de formulário AJAX

Recommended Posts

Bom dia pessoal,

 

estou com um probleminha no envio do meu formulário para meu controller...pois meus dados não estão salvando no banco de dados.

 

se eu envio o formulário da forma tradicional, ou seja no action do form, os dados são gravados com sucesso, porém utilizando ajax os dados chegam no controller mas não estão sendo gravados no banco.

 

segue o código utilizado.

 

ajax:

jQuery('#formulario-noticias').submit(function(){
			var dados = jQuery( this ).serialize();
 
			jQuery.ajax({
				type: "POST",
				url: "<?php echo base_url('noticias/editar');?>",
				data: dados,
				success: function( data )
				{
					alert( data );
				}
			});
			
			return false;
            });

controller:

 

public function editar(){                    
			//validação do form                        
			$this->form_validation->set_rules('titulo', 'Titulo', 'trim');
			$this->form_validation->set_rules('chamada', 'chamada', 'trim');
			$this->form_validation->set_rules('texto', 'texto', 'trim');
                        
                        if($this->form_validation->run() == TRUE){                               
                                $dados = elements(array('titulo','chamada','texto'), $this->input->post());
                                $this->noticias_model->do_update($dados, array('id' => $this->input->post('id')));

                                print 'chegou'.$this->input->post('id');                                
                        }                                               
		}

 

 



Pessoal fiz mais alguns testes aqui e percebi que o problema está em um editor de texto que estou utilizando no meu form (ckeditor)....os inputs estão normais....para poder salvar meu textarea tenho que clicar fora do textarea antes de enviar o form, senão não grava os dados....nunca tinha visto algo parecido!

Compartilhar este post


Link para o post
Compartilhar em outros sites

vc tem q pegar o conteudo do ckeditor com os métodos da API dele.

 

algo como getData, tem q dar uma lida lá na documentação.. não lembro mais exatamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

valeu cara ...já tinha achado mas não rolou...não sei se estou usando corretamente

 

coloquei o código dentro da função do submit antes do serialize

 

CKEDITOR.instances.editorNoticias.getData();
var dados = jQuery( this ).serialize();

Compartilhar este post


Link para o post
Compartilhar em outros sites

var dados = jQuery( this ).serialize() + '&editor=' + CKEDITOR.instances.editorNoticias.getData();

ai vc vai receber um $_POST['editor'] no teu php

Compartilhar este post


Link para o post
Compartilhar em outros sites

estamos quase lá...rsrs ....os dados estão chegando.....o problema agora é que quando editou com este código as tags html começaram a aparecer no textarea quando puxo os dados para o form..

 

 

alguns dados chegam incompletos....vou testar outras formas aqui...

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas isso é normal.. um textarea não interpreta tags html.

 

mas se as tags html estão aparecendo no ckeditor, então há a possibilidade de algo no teu server-side estar quebrando as tags.

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas isso é normal.. um textarea não interpreta tags html.

 

mas se as tags html estão aparecendo no ckeditor, então há a possibilidade de algo no teu server-side estar quebrando as tags.

 

verdade era isso mesmo....eu mudei o name do textarea e esqueci de mudar no parâmetro set_value também....aí da esse pau aí mesmo.

 

valeu cara!

Resolvido

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara surgiu um problema que eu não havia pegado...

 

o getData() está pegando o texto, porém se digito algum caractere especial ele interrompe o conteúdo na primeira ocorrência de um caractere especial e o texto chega cortado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

quais caracteres exatamente ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

então o ckeditor tá convertendo para entities, ai ç por exemplo vira "& ccedil"

 

ai por causa do & (e comercial), a tua query string corta virando 2 partes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só um complemento no caso de alguém estiver com o mesmo problema.

 

além de

entities_latin: false

deve-se utilizar também

entities_greek: false,

pois sem esta outra configuração as quebras de linha não funcionam.

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara ainda estou apanhando para receber meus textos via ajax.

 

quando tento enviar um texto grande pulando algumas linhas, o texto não chega por completo no meu server side.

 

o ajax tem alguma limitação quanto ao tamanho de dados a ser passado?

 

segue meu código. Fiz alguns alerts no js para acompanhar o conteúdo e me pareceu que o problema está no data do ajax.

 

jQuery('#formPolitica').submit(function(){
                        var text = CKEDITOR.instances.editorPolitica.getData();
                        alert(text);
			var dados = jQuery( this ).serialize()+ '&stc_text=' + text;
                        alert(dados);
			jQuery.ajax({
				type: "POST",
				url: "<?php echo base_url('estatico/editar_politica');?>",
				data: dados,
				success: function( data )
				{
					alert(data)
                                        alert( 'Editado com sucesso!' );
                                        $('#tabs-1i').load('<?php print base_url('estatico/politica')?>');
                                        
				}
			});
			
			return false;
            });

Compartilhar este post


Link para o post
Compartilhar em outros sites

data já é o retorno

 

não tem limite não.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o data que me referi é este de quando passo os dados

type: "POST",
url: "<?php echo base_url('estatico/editar_politica');?>",
data: dados,

no meu php eu dou um print no meu post e meu texto não chega por completo, no javascript executo um alert antes de passar os dados por ajax e o texto está completo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.