Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Submeter dado através de $.ajax para variável PHP com


Avalon

Pergunta

Boa tarde. Eu gostaria de enviar por meio de ajax o valor de um input para uma variável com o mesmo name no PHP. Eu tentei codificar essa tarefa, contudo o meu botão de cadastrar não está submetendo o form. Além disso, estou tentando testar se uma base de dados já foi inserida no banco de dados fazendo um echo para ser retornado como html pelo php como string. No arquivo javascript eu estou fazendo:

$("#cad_base").click(function() {
		
	    $("#nav").next().remove();
	    
	    $("#nav").after
	    (
	        '<form id="form_base" method="post" action="php/cadastrar_base.php">' + 
	   	    '<label for="nome_base">Nome da base: </label>' +    
	   	    '<input type="text" required="required" size="40" maxlength="50" name="nome_base" id="nome_base"><br>' +
	   	    '<input type="submit" name="cadastrar" value="Cadastrar" id="cadastrar">' + 
	        '<br>' +
	        '</form>'
	    );
	    
	  $("#form_base").submit(function(event) { 
		  event.preventDefault();
		  $.ajax({
			  type: "POST",
			  url: "php/cadastrar_base.php",
			  data: {nome_base: $("#nome_base")[0]},
			  datatype: "html",
			  success: function(data)
			  {   
				  $("#nav").next().remove();
				  
				  $("#nav").after(data);
			     
			   }
			});
	    });
	});

e no PHP eu estou fazendo:

<?php
	header("Content-Type: text/html; charset=UTF-8");
	require_once("conexaoPDO.php");
	
	$nome_base = $_POST['nome_base'];
	
	try {
		 
		$conexao_pdo = ConexaoPDO::getInstanciaPDO();
		$dsn = "mysql:host={$conexao_pdo->host};dbname={$conexao_pdo->nomeBD}";
		$pdo = new PDO($dsn, $conexao_pdo->nomeUsuario, $conexao_pdo->senha, array(PDO::ATTR_PERSISTENT => true));
		$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
	
	}
	catch(PDOException $e)
	{
		echo "A Conexão falhou: " . $e->getMessage();
	}
	
	$instrucao = $pdo->prepare("SELECT nome from base where nome='$nome_base'");
	
	try {
		$resultado = $instrucao->execute();
		if($resultado > 0)
		{
		   echo '<span style="color: red">base de dados existente. Por favor, escolha outro nome.</span>';	
		}
	}
	
	catch(PDOException $e)
	{
		echo "Não foi possível descobrir se o nome da base já existe no banco de dados." . $e->getMessage();
	}
?> 

sendo que o PHP não termina ali (tem mais coisa, só não é pertinente à dúvida), só fechei a tag para completar o código.

Editado por Avalon
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Já tentou assim? (trocando o botao submit e o evento submit no jquery)

$("#cad_base").click(function() {
		
	    $("#nav").next().remove();
	    
	    $("#nav").after
	    (
	        '<form id="form_base" method="post" action="php/cadastrar_base.php">' + 
	   	    '<label for="nome_base">Nome da base: </label>' +    
	   	    '<input type="text" required="required" size="40" maxlength="50" name="nome_base" id="nome_base"><br>' +
	   	    '<input type="button" name="cadastrar" value="Cadastrar" id="cadastrar">' + 
	        '<br>' +
	        '</form>'
	    );
	    
	  $("#cadastrar").live('click',function(event) { // usa o live para criar o evento, pois o botão submit é criado em tempo de execução
		  event.preventDefault();
		  $.ajax({
			  type: "POST",
			  url: "php/cadastrar_base.php",
			  data: {nome_base: $("#nome_base").val()},  // pega o valor
			  datatype: "html",
			  success: function(data)
			  {   
				  $("#nav").next().remove();
				  
				  $("#nav").after(data);
			     
			   }
			});
	    });
	});
Link para o comentário
Compartilhar em outros sites

  • 0

Sandro, eu fiz exatamente como você disse e acabou que não tive resposta de volta do ajax. As mensagens de resposta apareceram do lado servidor, na página .php. que foram duas segundo a lógica errada que eu implementei que ainda terei que consertar. Em

http://127.0.0.1/projects/ProjetoFinal/php/cadastrar_base.php

base de dados existente. Por favor, escolha outro nome.Uma base de dados foi criada com sucesso

Link para o comentário
Compartilhar em outros sites

  • 0

neste trecho

			  success: function(data)
			  {   
				  $("#nav").next().remove();
				  
				  $("#nav").after(data);
			     
			   }

Adicione:

			  success: function(data)
			  { 
                               console.log(data); // Clique em especionar elemento e veja o resultado no console 
                            // alert(data);  ou coloque esse alert para ver o resultado

				  $("#nav").next().remove();
				  
				  $("#nav").after(data);
			     
			   }
Link para o comentário
Compartilhar em outros sites

  • 0

boa noite. Eu consegui resolver o problema. Segue o trecho que eu não tinha conseguido fazer.

Obrigado pela ajuda!

$("#form_pesquisador").submit(function(event) { 
			  event.preventDefault();
			  $.ajax({
				  type: "POST",
				  url: "php/cadastrar_pesquisador.php",
				  data: {nome_pesquisador: $("#nome_pesquisador").val(), 
					     idade: $("#idade").val(),
					     email: $("#email").val(),
					     ddd: $("#ddd").val(),
					     telefone: $("#telefone").val(), 
					     cep: $("#cep").val(), 
					     nome_instituicao: $("#nome_instituicao").val(), 
					     sexo: $("#sexo").val(), 
					     ativo: $("#ativo").val()
					     },
				  datatype: "html",
				  success: function(data)
				  {   
					  $("#form_pesquisador").fadeOut(400);				  
					  $("#nav").after(data);
				      $("#feedback").delay(3600).fadeOut(400, function(){ $(this).remove(); });
				      $("#form_pesquisador").delay(3600).fadeIn(400);
				   }
				});
		    });
Editado por Avalon
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...