Jump to content
AlexandreHenrique

onclick chama função PHP

Recommended Posts

Boa noite amigos,
preciso chamar uma função PHP ao clicar em um botão tipo submit, é possível?

Tenho o seguinte código:

 

<form action="pagina.php" target="_blank" method="POST" >
	<input type="text" name="nome" />
	<input type="text" name="email" />
	<input type="submit" onclick="testephp()"value="Enviar"/>
</form>


<?php
function testephp(){
	comandos
}
?>

 

Share this post


Link to post
Share on other sites

se tá na mesma pagina deixa o action vazio e pode tirar esse target daí

Share this post


Link to post
Share on other sites

não dá desse jeito aí. o php é server side e todo executado antes da pagina ser carregada. se tem uma outra página no action ela vai ser carregada pra poder validar o form e tal. não dá pra carregar ela e continuar na mesma página. tu pode usar jquery pra fazer isso sem refresh

Share this post


Link to post
Share on other sites

Apenas respondendo a pergunta, sem entrar no mérito se isso é certo ou errado. É possível fazer da seguinte forma:

<form action="pagina.php" target="_blank" method="POST" >
    <input type="text" name="nome" />
    <input type="text" name="email" />
    <input type="submit" onclick="testephp()"value="Enviar"/>
    
</form>

<?php 
  function helloImasters()
  {
    return 'Hello Imasters!';
  }
?>

<script type="text/javascript">
    
    function testephp()
    {
        var msg = ' <?php echo helloImasters(); ?> ';
        alert(msg);
    }
    
</script>

Sera exibido um alert com Hello Imasters!

Share this post


Link to post
Share on other sites

Alexandre fiz isso à bem pouco tempo vou-te passar um exemplo, tu depois modificas para o teu código.

 

function envia_formulario()
{
		NO CASO EU VOU USAR O GET SE QUISERES USAR O POST É SÓ ALTERAR A ESTRURA CASO NÃO CONSIGAS DIZ-ME QUE EU DOU-TE UMA AJUDA	


	// Criar um objeto XMLHttpRequest
    if (window.XMLHttpRequest) {
        // código para IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
    }
	else
	{
        // código para IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
	// Criar a função a ser executada quando a resposta do servidor estiver pronta
    xmlhttp.onreadystatechange = function()
	{
		// verificar se a operação de request foi completada, quer tenha tido sucesso ou não ( readyState==4 )
		// e se teve sucesso ( status==200 )
        if (this.readyState == 4 && this.status == 200)
		{
            //
			// Se quisermos alterar a página corrente, com base na resposta do servidor
			// (ou seja, o conteúdo gerado pelo ficheiro chamado no servidor), usamos
			// código similar ao seguinte ( responseText é uma string com a resposta do servidor;
			// fica com valor null se o request não teve sucesso ou se ainda não foi enviado ao servidor.
			//
					
			//NO FICHEIRO PHP ->ficheirophp ONDE TENS AS INTRUÇÕES SQL PODES FAZER UM ECHO POR EXEMPLO SE O NAO HOUVE ERROS ECHO OK
			//SE HOUVE ERROS ECHO ERRADO

					//DEPOIS AQUI PODES VERIFICAR ISSO	
				
					if(this.responseText.trim() == "ok")
					{
						alert ("Registo Bem submetido!!")
					}
 					else
					{
						alert ("Ocurreu um erro por favor tente mais tarde!");
					}
				


		}
    };
	// Enviar o request para um ficheiro no servidor
	//ficheirophp é ficheiro onde vais ter o código com as intruções sql
    xmlhttp.open( "GET", "ficheirophp.php?id=" + document.getElementById("nome_cliente").value , true);
    xmlhttp.send();
	
}

<input type="text" id="nome" name="nome" required="" /> 

<input type="button" value="Limpar" style="float:right";  onClick="envia_formulario()"/>

 

 

No ficheiro php metes o que tu quiseres neste caso vou fazer um insert ...

 

<?php

/* ligar à base de dados  */
$ligacao = mysqli_connect("localhost","root","","name_bd");
mysqli_set_charset($ligacao,"utf8");

// guardamos a variavel que vem do get numa variavel temporaria $nome_user
// mysqli_real_escape_string é para proteção contra o mysql injection deves usar!

 $nome_user = mysqli_real_escape_string($ligacao,$_GET["nome"]);

//instrução sql
$sql = "INSERT INTO nomes (nome)
VALUES ('".$nome_user."')";

/* executar a instrução SQL e guardar o seu
   resultado em $resultado */
$resultado = mysqli_query( $ligacao, $sql );


if($resultado)
{
echo "ok"; //registo concluido com sucesso , este echo  têm de estar aqui para que depois seja mostrado um alert la na outra página com a mensagem que quiseres ele va funcionar como uma variavel... havia outra maneira porêm esta é a mais simples e eu ja tenho usado sem problemas
}
else
{
echo "errado";
}






?>

 

 

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Rebeca Julia Bronzatti
      Como salvar um formulário que possui duas tabelas, tenho uma tabela imóvel e outra arquivoimagem, gostaria de saber como salvar as duas, vi algumas coisas como dar um insert de cada vez no entanto eu não consigo recuperar a imagem, ele nem entra no if pra salvar a imagem. Se alguém puder me ajudar agradeço e muito to batendo a cabeça faz um tempo e não consigo resolver o bo.
       
      <?php include 'Conexao.php'; $nome = $_POST['nome']; $idade = $_POST['idade']; $sexo = $_POST['sexo']; $arquivo = isset($_FILES['arquivo']) ? $_FILES['arquivo'] : ""; $sql = "INSERT INTO usuario(nome, idade, sexo) VALUES ('$nome', '$idade', '$sexo')"; $resultado = mysqli_query($cnn, $sql); if(!$sql){ echo 'não salvou'; }else{ echo 'salvou'; } if (isset($_FILES['arquivo'])) { $nome = $arquivo['name']; $tiposPermitidos = ['jpg', 'jpeg', 'png']; $quantArquivos = count($_FILES['arquivo']['name']); $contador = 0; while ($contador < $quantArquivos) { $extensao = pathinfo($_FILES['arquivo']['name'][$contador], PATHINFO_EXTENSION); $temporario = $_FILES['arquivo']['tmp_name'][$contador]; if (in_array($extensao, $tiposPermitidos)) { $tamanho = $arquivo ['size']; $novo_nome = uniqid().".$extensao" ; $diretorio = "upload/"; if(move_uploaded_file($temporario, $diretorio . $novo_nome)){ echo "Upload feito com sucesso $novo_nome<br>"; $sql_code = "INSERT INTO arquivoimagem (arquivo, data) VALUE ('$novo_nome', NOW())"; header("Location: MostraImagem.php"); if (mysqli_query($cnn, $sql_code)) { $msg = "Arquivo enviado com sucesso!"; } else { $msg = "Falha ao enviar arquivo"; } } } else { print "Tipo de arquivo não permitido"; } $contador++; } }
          
       
    • By Michael Cats
      Boa tarde,
       
      Preciso fazer um verificação, no ad criamos um grupo e somente esse grupo pode ter acesso ao conteudo.
      tenho um tela de login e depois preciso da verificação desse usuario no grupo do ad.
       
      Alguem pode me ajudar desde ja agradeço...
      Qualquer ajuda e bem vinda...
    • By violin101
      Caros amigos, saudações...
       
      Desculpa em recorrer aos amigos, com minha dúvida um pouco ingênua, se postei minha dúvida na opção errada, peço desculpas.
       
      Tenho 3(três) INPUT's que são:
      -----: quantidade
      -----: valor unitário
      -----: valor total
       
      Como faço para enquanto o INPUT do campo VALOR TOTAL for igual a 0,00 ---> o botão de GRAVAR fica desabilitado ?
       
      Tem como capturar através do JAVASCRIPT ?
       
      Grato,
       
      Cesar
       
    • By EvertonFD
      Bom dia preciso de uma ajuda tenho que fazer parecer um btn em php quando o id da url for=3
      esse é o codigo mas o btn aparece mas não encaminha o link se alguem puder me ajudar agradeço
      <?php 
       $result_colaborador = " SELECT * FROM sts_colaborador  WHERE categoria_id=$id";
              $resultado_colaborador = mysqli_query( $conn, $result_colaborador );
              $row_colaborador = mysqli_fetch_assoc( $resultado_colaborador ); 
          $id = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT);
          $link= '';        
      if ($id == 3){
          echo "<a href='colaborador?id=<?php echo $row_colaborador ['id']; ?>class='btn btn-info'>teste</a>";
      }
      ?>
       
    • By Alberto Nascimento
      Preciso que o nome do arquivo que foi salvo durante o registro de um formulário, ao ser exibido através de uma busca e mostrado em ECHO possa se tornar um link.
      Como consigo fazer isso?
       
      echo "<a href="http://www.meusite.com.br/app/".$rows_cursos['novonome'].";  
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.