Ir para conteúdo

POWERED BY:

Arquivado

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

Guilherme_90

[Resolvido] ajaxform

Recommended Posts

Boa tarde pessoal. Estou com um problema que não consigo resolver, por isso peço ajuda. Segue código abaixo:

 

$('#formNoticia').ajaxForm({
dataType: 'json', 
url: 'actions/actionNoticias.php', 

beforeSerialize: function(formulario, opcao) { 
	$(formulario).serialize();
},

beforeSubmit: function(a,form,o) {
	if(!validarFormulario(form)){
		return false;
	}
	$('#padrao .aviso').hide();
	$('#formNoticia button').hide();
	$('#formNoticia .spanObrigatorio').hide();
},

success: function(retorno){
	if(retorno.success){
		jAlert(retorno.msg,"Mensagem");	
	}else{
		jAlert(retorno.msg,"Mensagem");	
	}
}

});

O erro é o seguinte: Ele sempre retorna no else, ou seja, nunca executa o if. Alguém sabe me dizer o por que?

Se caso alguém também queira ver o PHP, segue uma parte:

 

<?

if($retorno){
return $retorno;
$jsonEncode['success'] = true;
$jsonEncode['msg'] = 'Notícia cadastrada com sucesso';
}else{
$jsonEncode['success'] = false;
$jsonEncode['msg'] = 'Erro ao cadastrar notícia';	
}

echo json_encode($jsonEncode);

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Problema está no PHP:

<?

if($retorno){
       return $retorno; //bem aqui, consegue perceber o que está errado?
       $jsonEncode['success'] = true;
       $jsonEncode['msg'] = 'Notícia cadastrada com sucesso';
}else{
       $jsonEncode['success'] = false;
       $jsonEncode['msg'] = 'Erro ao cadastrar notícia';       
}

echo json_encode($jsonEncode);

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?

if($retorno){
       return $retorno; //bem aqui, consegue perceber o que está errado?
       $jsonEncode['success'] = true;
       $jsonEncode['msg'] = 'Notícia cadastrada com sucesso';
}else{
       $jsonEncode['success'] = false;
       $jsonEncode['msg'] = 'Erro ao cadastrar notícia';       
}

echo json_encode($jsonEncode);

?>

 

E seu colocar o return fora? Vou testar. Na verdade esse $retorno está assim:

 

<?
$retorno = parent::insert();
?>

Vou testar e logo retorno.

 

Amigo, está na mesma coisa, veja o código completo do PHP:

Me fala onde está errado, não conseguindo por nada. Faz o cadastro normalmente, porém sempre cai no else.

Eu sei que aqui não o fórum de PHP, porém eu necessito de ajuda.

O $cadastrar = parent::insert(); está no começo por que eu pego o ID do último registro e cadastro a imagem, então não pode removê-lo daí.

 

<?

public function actionCadastrar(){
if($_FILES['imagem']['name'] != ""){
	if(isset($_FILES['imagem'])){
		$this->upload = new Upload($_FILES['imagem']);
	}
}

self::setTitulo($_POST['titulo']);
self::setTexto($_POST['texto']);
self::setAutor($_POST['autor']);

$this->campos = "titulo, texto, autor, dataPublicacao, publicar";
$this->valores = "
	'".self::getTitulo()."', 
	'".self::getTexto()."',
	'".self::getAutor()."', 
	NOW(),{$_POST['publicar']}
";

$cadastrar = parent::insert();

if($this->upload->uploaded){
	$this->upload->file_new_name_body = "imagem".$this->ultimoId;
	$this->upload->image_resize = true;
	$this->upload->image_ratio_y = true;
	$this->upload->image_x = 50;
	$this->upload->image_convert = 'jpg';
	$this->upload->jpeg_quality = 80;
	$this->upload->image_watermark_position = "BR";
	$this->upload->image_watermark_x = -15;
	$this->upload->process("../imagens/galeria/noticias/noticia".$this->ultimoId."/pequenas/");

	if($this->upload->processed){

	}else{
		echo 'Erro ao enviar imagem: '.$this->upload->error;
	}
}

if($this->upload->uploaded){
	$this->upload->file_new_name_body = "imagem".$this->ultimoId;
	$this->upload->image_resize = true;
	$this->upload->image_ratio_y = true;
	$this->upload->image_x = 800;
	$this->upload->image_convert = 'jpg';
	$this->upload->jpeg_quality = 80;
	$this->upload->image_watermark = '../imagens/marca_dagua.png';
	$this->upload->image_watermark_position = "BR";
	$this->upload->image_watermark_x = -15;
	$this->upload->process("../imagens/galeria/noticias/noticia".$this->ultimoId."/grandes/");

	if($this->upload->processed){

	}else{
		echo 'Erro ao enviar imagem: '.$this->upload->error;
	}
}

if($cadastrar){
	$jsonEncode['success'] = true;
	$jsonEncode['msg'] = 'Notícia cadastrada com sucesso';
}else{
	$jsonEncode['success'] = false;
	$jsonEncode['msg'] = 'Erro ao cadastrar notícia';	
}

echo json_encode($jsonEncode);
return $cadastrar;
}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

tá muito confuso esse teu código...

 

 

a principio, não deveria ter echo dentro do método.. já que ele tem aquele return.

 

 

success: function(retorno){
   alert( retorno );

oq volta desse alert ?

 

você está trabalhando com UTF8 ? jSON é UTF8.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Me retorna um objeto, ou seja, isso: [object Object]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado pela ajuda. Moderação, coloque como resolvido isso aqui, que eu resolvo isso sozinho.

Compartilhar este post


Link para o post
Compartilhar em outros sites

unica coisa q resta, é entender oq está acontecendo:

 

        success: function(retorno){
               alert( retorno.success+' '+typeof( retorno.success ) );
               if(retorno.success){

 

se não quiser ajuda, não poste no fórum. Ai não perdemos o nosso tempo tentando te ajudar.

Todos temos trabalho a fazer, então ela pode demorar a vir.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu quero ajudar, por isso mesmo eu vim aqui pedir. Trabalho o dia todo cara, tem coisas que não posso demorar muito, por isso eu pedi ajuda. Vou testar somente anoite, é que o horário em que estou em casa.

Obrigado, desculpe qualquer coisa.

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.