.FaBio 112 Posted April 24, 2017 Boas, estou com dificuldade em fazer passar um valor de uma variavel do Javascript para um ficheiro PHP, o código é este: Spoiler <div style=" overflow: auto"> <table id="tabela" class="table table-striped table-bordered" cellspacing="0" width="100%"> <thead> <tr> <td>Código Utilizador</td> <td>Tipo Utilizador</td> <td>Nome</td> <td>Login</td> <td>Password (Encriptada)</td> <td>Manutenção</td> </tr> </thead> <?php while($row = mysqli_fetch_array($result)) { echo ' <tr> <td>'.$row["cd_uti"].'</td> <td>'.$row["tp_uti"].'</td> <td>'.$row["Nome"].'</td> <td>'.$row["login"].'</td> <td>'.$row["PW"].'</td> <td>'<button data-id="',$row['cd_uti'],'"type="button" class="btn btn-warning btn-xs editButton" data-toggle="modal" data-target=".bs-example-modal-lg"><i class="fa fa-edit"></i> Editar</button> <button type="button" class="btn btn-danger btn-xs" data-toggle="modal" data-target=".bs-example-modal-sm"><i class="fa fa-trash"></i> Apagar</button> </td> </tr> '; } ?> </table> </div> <div class="modal fade bs-example-modal-lg" tabindex="-1" role="dialog" aria-hidden="true"> <div class="modal-dialog modal-lg"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span> </button> <h4 class="modal-title" id="myModalLabel">Modal title</h4> </div> <div class="modal-body"> <div id="edit_result"> <!-- Div onde sao mostrados os campos a editar --> </div> </div> </div> </div> </div> com o seguinte JS: (o que nao consigo fazer é passar o valor "id" para o ficheiro php. Spoiler <script> $(document).ready(function() { $('.editButton').on('click', function() { var id = $(this).attr('data-id'); alert(id); //apenas para verificar se o valor esta a ser captado corretamente // agora como faço para passar o valor do id para o ficheiro? $("#edit_result").load('utilizadores/edit_uti.php'); }); }); </script> o que o script faz é carregar o ficheiro do formulário onde vai ser possivel editar os dados: Citar <?php $c = //aqui esta a duvida de como passo a variavel do utilizador que quero editar $sql="SELECT * FROM Utilizadores WHERE cd_uti ='$c'"; $res=mysql_query($sql); $row=mysql_fetch_array($res, MYSQL_ASSOC); ?> (...) <div class="form-group"> <label class="control-label col-md-4 col-sm-4 col-xs-12">Nome:</label> <div class="col-md-4 col-sm-4 col-xs-12"> <input value="<php echo $row['Nome']?>" required id="nome" name="nome" type="text" class="form-control"> </div> </div> <div class="form-group"> <label class="control-label col-md-4 col-sm-4 col-xs-12">Login:</label> <div class="col-md-4 col-sm-4 col-xs-12"> <input value="<?php echo $row['login']?>" required id="login" name="login" type="text" class="form-control" onblur="return existelog(this);" onkeyup="return existelog(this);"> </div> <div style="text-align:left;" class="control-label" id="msglog"></div> </div> <div class="form-group"> <label class="control-label col-md-4 col-sm-4 col-xs-12">Tipo de Utilizador:</label> <div class="col-md-4 col-sm-4 col-xs-12"> <select class="form-control" name='cd_tp_uti' id='cd_tp_uti'> <?php echo "<option value='0' disabled selected>Selecione um tipo</option>"; $sql2="select * from tipo_utilizadores"; $res2=mysql_query($sql2); while($lin2=mysql_fetch_array($res2,MYSQL_ASSOC)) { echo "<option selected=selected value=",$lin2['cd_tp_uti'],">",$lin2['tp_uti'],"</option>"; } ?> </select> </div> </div> Ou seja, o script vai buscar o código do utilizador que se prente alterar ao "data-id" e preciso de mandar o valor do mesmo para o ficheiro do formulario onde vai carregar os dados já existentes. Aqui fica um exemplo da tabela/form para editar. Citar Share this post Link to post Share on other sites
Kajo ✌ 57 Posted April 24, 2017 Pelo que entendi é para editar o utilizador. Quando carregas em editar aparece a janela de baixo com os campos preenchidos do utilizador, assim é só alterar o que se quiser. Não precisas de JS para fazer isso, com PHP é mais simples. Share this post Link to post Share on other sites
.FaBio 112 Posted April 24, 2017 Eu preciso de JS para carregar os campos do modal, pois eu nao quero que a pagina dê qualquer tipo de refresh, ou seja, a pagina fica sempre a mesma mas com o javascript a executar ficheiros php por tras (o ficheiro de consulta à db para preencher os campos e o ficheiro de update), só preciso de conseguir passar o valor do id para o ficheiro php atravez do JS Share this post Link to post Share on other sites
Kajo ✌ 57 Posted April 26, 2017 Uma forma simples é a seguinte: Metes o valor da variavel PHP que queres num input hidden. Depois vais buscar o valor do input com JS. Existe mais formas mas essa é mais simples 1 .FaBio reacted to this Share this post Link to post Share on other sites
.FaBio 112 Posted April 26, 2017 (edited) 1 hora atrás, Kajo disse: Uma forma simples é a seguinte: Metes o valor da variavel PHP que queres num input hidden. Depois vais buscar o valor do input com JS. Existe mais formas mas essa é mais simples Eu já tinha como ir buscar o valor do ID ao campo data-id a minha dificuldade era fazer passar esse mesmo valor para o ficheiro php no momento do .load , já consegui fazer passar o valor assim: $(document).ready(function() { $('.editButton').on('click', function() { var id = $(this).attr('data-id'); $("#edit_result").load('utilizadores/edit_uti.php', {'c': id}); }); }); ou seja, quando o ficheiro edit_uti.php é carregado, recebe o calor do c: <?php $c = $_REQUEST['c']; //Recebe o ID do Utilizador a consultar na base de dados session_start(); $lig=mysql_connect("localhost", "root") or die ("Problema na ligação ao servidor MYSQL"); mysql_select_db("Junta",$lig); $sql="SELECT * FROM Utilizadores WHERE cd_uti ='$c'"; //Consulta os dados do utilizador pretendido $res=mysql_query($sql); $row=mysql_fetch_array($res, MYSQL_ASSOC); ?> e assim já consigo fazer a consulta à BD do utilizador pretendido, obtento o seguinte output: Spoiler Obrigado pelas tentativas de ajuda :) Edited April 26, 2017 by เмpคcтz (see edit history) Share this post Link to post Share on other sites