Ir para o conteúdo
N3lson

[Resolvido] Inserir via Ajax

Mensagens Recomendadas

N3lson

Boas tenho este formulario

<form action="" method="post" id="tipos">
        <label>id FAMILIA</label><input type="text" name="ids" required>
  	 <label>Tp. PRODUTO</label><input type="text" name="tipo" required>
  	 <button type="submit" name="inserir" value="inserir">INSERIR TIPO</button>
 </form>

que será manuseado por $.ajax

$('#tipos').submit(function(e){
                   e.preventDefault();
                   $.ajax({
                       type : 'POST',
                       url  : 'sql/tipos/inserir.php',
                       data : $(this).serialize(),
                       success: function(){
                           alert("Dados inseridos com sucesso!");
                           //location.replace('listar_produtos.php?accao=inserir');

                       },
                       error : function(){
                           alert("Ocorreu um erro ao inserir os dados.");

                       }
                   });
               });

na pagina php tenho isto


require('../conx.php');


   $lang = 'pt';
   $ids  = $_POST['ids'];
   $tipo = $_POST['tipo'];

   $inserir = "INSERT INTO tipo_produtos (ids,tipo,lang) VALUES('{$ids}','{$tipo}','{$lang}')";

apesar de indicar o alert do "success", não faz nada.


You can't do it, kid. But don't worry, my boy. You're not the only one. No one else can do it.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
N3lson

Boa tarde N3lson!

Seu código PHP está incompleto, esqueceu de colocar aqui no post ou é só isso ai mesmo?

Att.

Coloquei globalmente, mas já está corrigido, como falaste no incompleto tinha $con->queury($inserir);

Mas se a inserção não ocorria porque razão dava a mensagem de "success", não deveria despoletar o "error" ?

Editado por N3lson

You can't do it, kid. But don't worry, my boy. You're not the only one. No one else can do it.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
cristianoaredes

Se não ocorreu nenhum http error, o retorno será tratado como success. Validar se a operação foi realmente realizada ou não você que deverá fazer no servidor e retornar algo que indique se a operação foi realizada ou não.

Att.

  • Voto 1

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

Se não ocorreu nenhum http error, o retorno será tratado como success. Validar se a operação foi realmente realizada ou não você que deverá fazer no servidor e retornar algo que indique se a operação foi realizada ou não.

exemplo:

require('../conx.php');

$lang = 'pt';
$ids  = $_POST['ids'];
$tipo = $_POST['tipo'];

$inserir = "INSERT INTO tipo_produtos (ids,tipo,lang) VALUES('{$ids}','{$tipo}','{$lang}')";
$result = $con->queury($inserir);

if ($result === FALSE) { // estou a assumir que a função retorna FALSE em caso de erro
   echo 0;
} else {
   echo 1;
}

$('#tipos').submit(function(e){
                   e.preventDefault();
                   $.ajax({
                       type : 'POST',
                       url  : 'sql/tipos/inserir.php',
                       data : $(this).serialize(),
                       success: function(result){
                           if (result == '0') {
                               alert("Erro a inserir os dados!");
                           } else {
                               alert("Dados inseridos com sucesso!");
                           }

                       },
                       error : function(){
                           alert("Ocorreu um erro na ligação."); // <--- olha a alteração da mensagem !!!

                       }
                   });
               });

isto é um exemplo do mais básico que existe.

alterações são recomendadas como:

- usar JSON para poder responder facilmente mais informação do processo

- em caso de erro, o servidor deverá adicionalmente dizer qual foi o problema (com JSON, talvez ...)

- corrigir/adaptar a verificação da execução da query no lado do servidor

- etc, etc, ...

  • Voto 2

IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ruicosta.web

Quero alertar para os problemas da falta de segurança:

- Validar todas as entradas de dados

- Proteger contra ataques XSS

- Proteger contra ataques CSRF

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.