Ir para conteúdo

Arquivado

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

Rafael Ponte

Como chamar função com parametros através de um link

Recommended Posts

Boa noite amigos!

Estou tentando chamar uma função javascript através de um link, o engraçado é que sem os parâmetros a função executa um alert, mas ao passar os mesmos nem um sinal de vida, o objetivo é clicar no link e recuperar os dados em seus devidos campos para que se possa excluir ou alterar. Através do método GET consegui belezinha, porém estavam ficando dados na url os quais não estava conseguindo apagar. Segue código:

cad_usu.php

<?php

ini_set('display_errors', true);
error_reporting(E_ALL);
    
?>
<html>
<head>
<?php include_once "cabecalho.php";
    
?>
<title></title>
</head>
<body>
<?php include_once "navegacao.php" ?>
<style type="text/css">
* {
    margin: 0px;
    
}
.id {
    
    float: left;
    margin-right: 20px;
    

}
.nome {
    
    margin-top: 15px;
    
    
</style>
    <div>
        <?php
        
        
         
        if(!isset($_POST['id'])){
                $_POST['id'] ='';        
        }
        if(!isset($_POST['nome'])){
                $_POST['nome'] ='';        
        }
        if(!isset($_POST['login'])){
                $_POST['login'] ='';        
        }
        

             
        
        
        ?>
        <form method="post">
                <input type="text" name="codigo" value="<?php echo $_POST['id']; ?>" id="txtcodigo">
                <label>Nome: </label> <input type="text" name="nome" value="<?php echo $_POST['nome']; ?>" id="txtnome"> <br>    
               <label>Login: </label> <input type="text" name="login" value="<?php echo $_POST['login']; ?>" id="txtlogin"> <br>
        </form>
       <button id="salvar" name="btnsalvar" value="1" onclick="acao(this.value)">Salvar</button>
       <button id="excluir" name="btnexcluir" value="3" onclick="acao(this.value)">Excluir</button>
       <button id="listar" name="btnlistar" value="5" onclick="acao(this.value)">Listar</button>
       <button id="alterar" name="btnalterar" value="2" onclick="acao(this.value)">Alterar</button>
       
       <button id="selecionar" name="btnselecionar" onclick="selecionar()">Selecionar</button>
    </div>
    <div>
    
            <div id="id" class="id">Id</div>
            <div id="nome" class="nome">Nome</div>    
    
            <div id="status"></div>
        
    
    </div>
        <script type="text/javascript">

    
    
    function selecionar(id,nome,login) {
        
    alert("clicou");


        document.getElementById("txtcodigo").value = id;
        document.getElementById("txtnome").value = nome;
        document.getElementById("txtlogin").value = login;
    }
    
 


    </script>

    <script type="text/javascript">
    
        function limpar(){
        document.getElementById("txtcodigo").value="";
        document.getElementById("txtnome").value="";
        document.getElementById("txtlogin").value="";    
    
    }
    
    function acao(ac) {
        if (ac == "") {
        document.getElementById("status").innerHTML = "";
        return;
    } else {

class.usuarios.php

<?php
    ini_set('display_errors', true);
error_reporting(E_ALL);
include_once "cabecalho.php";
    class Usuario {
        private $sql;
        
        function __construct(){
                include_once "conexao.php";
                DataBase::getInstance();
                
        
        }
        function inserirUsuario($nome,$login){
            $this->sql="INSERT INTO tbusuarios (nome,login) VALUES ('".$nome."','".$login."')";
            $resultado = DataBase::retornarResultado($this->sql)["resultado"];
            if($resultado){
                $this->listarUsuarios();
                
                return true;        
            }else{
            
                return false;
            }
        }
        function alterarUsuario($id, $nome, $login){
            $this->sql="UPDATE tbusuarios SET nome='".$nome."',login='".$login."' WHERE id=".$id;
            $resultado = DataBase::retornarResultado($this->sql)["resultado"];
            if($resultado){
                $this->listarUsuarios();
                return true;            
            }else{
            
                return false;
            }
        }
        function excluirUsuario($id){
            $this->sql="DELETE FROM tbusuarios WHERE id=".$id;
                $resultado = DataBase::retornarResultado($this->sql)["resultado"];
            if($resultado){
                $this->listarUsuarios();
                return true;    
                    
            }else{
            
                return false;
            }
        }
        function listarUsuarios(){
            $this->sql="SELECT id,nome,login FROM tbusuarios";
            $resultado = DataBase::retornarResultado($this->sql)["resultado"];
            
            if($resultado) {
                    while($row = $resultado -> fetch_row()){
                                    echo "
            
                                        <div>
                                        <div id='ids' class='id'>".$row[0]."</div>
                                        <div id='nomes' class='nome'>".$row[1]."</div>    
                                        <div id='logins' class='login'>".$row[2]."</div>
                                        
                                        <div><a  href='javascript: selecionar($row[0],$row[1],$row[2])') > Selecionar </a> </div>
                                        
                                    </div>
                            "
                                                                            
                                    
                                    ;
                            
                    
                    
                    }
      
            }
            
            $resultado->close();        
        }    
    
    
    }


?>

action.usuarios.php

<?php
ini_set('display_errors', true);
error_reporting(E_ALL);
    include_once "class.usuarios.php";
    $usuario = new Usuario();
    
    switch(intval($_POST['acao'])) {
        case 1:
            //$usuario->inserirUsuario($_GET['nome'],$_GET['login']);
            $usuario->inserirUsuario($_POST['nome'],$_POST['login']);
            
        break;
        case 2:
            //$usuario->alterarUsuario($_GET['codigo'],$_GET['nome'],$_GET['login']);
            $usuario->alterarUsuario($_POST['codigo'],$_POST['nome'],$_POST['login']);
            
        break;
        case 3:
            //$usuario->excluirUsuario($_GET['codigo']);
            $usuario->excluirUsuario($_POST['codigo']);
            
        break;
        default:
            $usuario->listarUsuarios();
            
            break;        
        
        
        
    }
    //unset($_GET['id'],$_GET['nome'],$_GET['login']);
                /*
                function zerar(){
                $_GET['id']='0';
                $_GET['nome']='';
                $_GET['login']='';
                
                unset($_GET['id']);
                unset($_GET['nome']);
                unset($_GET['login']);
                
        
        }*/


?>

Quando posiciono o mouse sobre o link de cada registro aparece assim por exemplo : javascript: selecionar(2,joão,jjj) mostrando que cada registro está recebendo os parâmetros de acordo, mas quando clico no link nada acontece, sem parâmetros executa, mas preciso dos parâmetros.

Desde já grato aos que dedicarem algum tempo me esclarecendo onde estou errando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui chamar a função, porém me apareceu outro problema, strings sem espaços nos dados aparecem normalmente, porem se eu colocar espaço no nome e gravar quando seleciono o registro a função não executa, quebra a função, onde existe espaço.

 echo "<div><a  href=javascript:selecionar('$row[0]','$row[1]','$row[2]') > Selecionar </a> </div>"

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.