Jump to content
rxhxtx

Ajax altera dados na pagina mas PHP nao edita o BD

Recommended Posts

Boa tarde,

nos meus estudos me deparei com mais um obstaculo,

estava fazendo um tutorial sobre atualizacao de BD via ajax...

 

os dados da pagina estao sendo atualizados perfeitamente, porem o PHP nao executa a funcao de colear os dados e atualizar o BD,

<?php
$connection =	mysqli_connect('localhost' , 'root' ,'' ,'testes');


if(isset($_POST['user_id'])){
	
	$user_fname = $_POST['user_fname'];
	$user_lname = $_POST['user_lname'];
	$user_email = $_POST['user_email'];
	$user_id = $_POST['user_id'];
	 
	$result  = mysqli_query($connection , "UPDATE `users_full` SET `user_fname`=`$user_fname` , `user_lname`=`$user_lname` , `user_email`= `$user_email` WHERE `user_id`=`$user_id`");
	if($result){
		echo 'data updated';
	}

}
?>

se eu coloco 

if(2+2 ==$){

 

e tiro os POST e coloco os valores ex: $user_fname = "carlinhos";

atualiza, porem se deixo para ele pegar os dados vi post não funciona... so atualiza na pagina, mas o BD fica igual....

 

qual é o erro? pq nao esta recebendo os POST??

 

codigo da pagina é esse:

<?php  include 'listaUSUcon.php'; ?>
<head></head>
<body>

<div class="container">   
  <table class="table">
    <thead>
      <tr>
        <th>Firstname</th>
        <th>Lastname</th>
        <th>Email</th>
        <th>Action</th>
      </tr>
    </thead>
    <tbody>
      <?php
          $table  = mysqli_query($connection ,'SELECT * FROM users_full');
          while($row  = mysqli_fetch_array($table)){ ?>
              <tr id="<?php echo $row['user_id']; ?>">
                <td data-target="user_fname"><?php echo $row['user_fname']; ?></td>
                <td data-target="user_lname"><?php echo $row['user_lname']; ?></td>
                <td data-target="user_email"><?php echo $row['user_email']; ?></td>
                <td><a href="#" data-role="update" data-id="<?php echo $row['user_id'] ;?>">Update</a></td>
              </tr>
         <?php }
       ?>
       
    </tbody>
  </table>

  
</div>

    <!-- Modal -->
    <div id="myModal" class="modal fade" role="dialog">
      <div class="modal-dialog">

        <!-- Modal content-->
        <div class="modal-content">
          <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal">×</button>
                <input type="text" id="user_id" class="form-control" readonly>
          </div>
          <div class="modal-body">
              <div class="form-group">
                <label>First Name</label>
                <input type="text" id="user_fname" class="form-control">
              </div>
              <div class="form-group">
                <label>Last Name</label>
                <input type="text" id="user_lname" class="form-control">
              </div>

               <div class="form-group">
                <label>Email</label>
                <input type="text" id="user_email" class="form-control">
              </div>
                <input type="hidden" id="user_id" class="form-control">


          </div>
          <div class="modal-footer">
            <a href="#" id="save" class="btn btn-primary pull-right save">Update</a>
            <button type="button" class="btn btn-default pull-left" data-dismiss="modal">Close</button>
          </div>
        </div>

      </div>
    </div>

</body>

<script>
  $(document).ready(function(){

    //  append values in input fields
      $(document).on('click','a[data-role=update]',function(){
            var user_id  = $(this).data('id');
            var user_fname  = $('#'+user_id).children('td[data-target=user_fname]').text();
            var user_lname  = $('#'+user_id).children('td[data-target=user_lname]').text();
            var user_email  = $('#'+user_id).children('td[data-target=user_email]').text();

            $('#user_fname').val(user_fname);
            $('#user_lname').val(user_lname);
            $('#user_email').val(user_email);
            $('#user_id').val(user_id);
            $('#myModal').modal('toggle');
      });

      // now create event to get data from fields and update in database 

       $('#save').click(function(){
          var user_id  = $('#user_id').val(); 
         var user_fname =  $('#user_fname').val();
          var user_lname =  $('#user_lname').val();
          var user_email =   $('#user_email').val();

          $.ajax({
              url      : 'listaUSUcon.php',
              method   : 'post', 
              data     : {user_fname : user_fname , user_lname: user_lname , user_email : user_email , user_id: user_id},
              success  : function(response){
                            // now update user record in table 
                             $('#'+user_id).children('td[data-target=user_fname]').text(user_fname);
                             $('#'+user_id).children('td[data-target=user_lname]').text(user_lname);
                             $('#'+user_id).children('td[data-target=user_email]').text(user_email);
                             $('#myModal').modal('toggle'); 

                         }
          });
       });
  });
</script>

 

 

aquele include (listaUSUcon.php) é referente ao primeiro codigo que postei la em cima..

 

 

para mim não faz sentido, pois aparentemente nao tem nada errado....

 

alguem sabe onde estou errando???

 

 

 

 

 

 

 

 

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 mm_edilson
      Boa tarde, amigos. Poderiam me dar uma ajuda? Não estou conseguindo gravar no banco de dados. O site sempre retorna "não foi possível cadastrar esse usuário".
       
      A estrutura da minha tabela "usuários" é ID, nome, email, usuario, senha, permissao, status. O meu form é:
       
      <!DOCTYPE html> <html> <head> <title> Cadastro de Pessoas</title> <meta charset="utf-8" /> <style type="text/css"> * { margin: 0; padding: 0; vertical-align: baseline; } body { width: 100%; background-color: black; } .cabecalho{ width: center; height: 15vh; background: black; display: flex; flex-direction: row; justify-content: center; align-items: center; font-family: Arial; font-size: 15pt; font-weight: bold; color: white; } .corpo{width: 100vw; height: 100vh; background: #6C7A89; display: flex; flex-direction: row; justify-content: center; align-items: center; font-family: Arial; font-size: 15pt; font-weight: bold; } .labels{ display: block; left: 0; width: auto; font-family: Arial; font-size: 15pt; font-weight: bold; } .campos{ display: block; left: 0; width: auto; font-family: Arial; font-size: 15pt; font-weight: bold; } p { margin: 5px; font-family: Arial; font-size: 15pt; font-weight: bold; color: white; text-align: right; } </style> </head> <body> <div class="cabecalho"><center><H3>IGREJA BATISTA NOVA ALIANÇA - CADASTRO DE USUÁRIO<BR>Preencha todos os campos e clique em "Cadastrar"</H3></center></div> <div class="corpo"> <div class="labels"> <p>Nome completo:<br><br>Endereço de Email:<br><br>Nome de Usuário:<br><br>Senha:<br><br>Confirme a Senha:<br><br><br></p> </div> <div class="campos"> <p><form method="POST" action="cadastro.php"> <input type="text" size="41px" name="nome"> <br><br> <input type="text" size="41px" name="email"><br><br> <input type="text" size="21px" name="usuario"><br><br> <input type="password" size="21px" name="senha"><br><br> <input type="password" size="21px" name="confirma_senha"><br><br> <input type="reset" value="Limpar Formulário"> <input type="submit" value="Cadastrar"> </form></p> </div></div> </body> </html>  
      e o meu cadastro.php é
       
      <?php $nome = $_POST['nome']; $email = $_POST['email']; $usuario = $_POST['usuario']; $senha = MD5($_POST['senha']); $permissao = 1; $status = 1; $connect = mysqli_connect('localhost','opbbabac_dados_membros','*************'); $db = mysqli_select_db('opbbabac_dados_membros'); $query_select = "SELECT usuarios FROM opbbabac_dados_membros WHERE usuario = '$usuario'"; $select = mysqli_query($query_select,$connect); $array = mysqli_fetch_array($select); $logarray = $array['usuario']; if($usuario == "" || $usuario == null){ echo"<script language='javascript' type='text/javascript'>alert('O campo usuário deve ser preenchido');window.location.href='cadastro.html';</script>"; }else{ if($logarray == $usuario){ echo"<script language='javascript' type='text/javascript'>alert('Esse usuário já existe');window.location.href='cadastro.html';</script>"; die(); }else{ $query = "INSERT INTO usuarios (nome,email,usuario,senha,permissao,status) VALUES ('$nome','$email','$usuario','$senha','$permissao','$status')"; $insert = mysqli_query($query,$connect); if($insert){ echo"<script language='javascript' type='text/javascript'>alert('Usuário cadastrado com sucesso!');window.location.href='login.html'</script>"; }else{ echo"<script language='javascript' type='text/javascript'>alert('Não foi possível cadastrar esse usuário');window.location.href='cadastro.html'</script>"; } } } ?>  
      Alguém consegue visualizar onde está o erro? Obrigado, e abraços a todos.
       
       
    • By rogerblower
      o Google me avisou de dois erros no meu site;
       
      Clickable elements too close together
      Text too small to read
       
      Na verificação constatei que o erro é;
       
      Fatal error:  Call to undefined function db_connect() in
       
      O php não me mostra esse erro mesmo habilitando os erros no php ini os arquivos de conexão que estou usando são;
       
      ini.php
      <?php define('DB_HOST', 'localhost'); define('DB_USER', 'user'); define('DB_PASS', 'senha'); define('DB_NAME', 'banco'); ini_set('display_errors', true); error_reporting(E_ALL); require_once 'functions.php'; functions.php
       
      <?php function db_connect() { $pdo = new PDO('mysql:host=' . DB_HOST . ';dbname=' . DB_NAME . ';charset=utf8', DB_USER, DB_PASS); return $pdo; } function make_hash($str) { return sha1(md5($str)); } function isLoggedIn() { if (!isset($_SESSION['logged_in']) || $_SESSION['logged_in']!== true) { return false; } return true; } O erro esta nesta linha
      <?php $pdo = db_connect(); $sql = $pdo->prepare("SELECT * FROM servicos "); $sql->execute(); while($row=$sql->fetch(PDO::FETCH_ASSOC)){ echo'<a href="servicos.php?id='.$row['id'].'">'.$row['servico'].'</a>'; } Incluo a conexão com banco na header.php e nas demais páginas não aparece o erro
      realmente não sei o que pode estar acontecendo.
      se alguém pode me ajudar?
       
      Obrigado
       
    • By violin101
      Caros amigos, saudações...
       
      Por favor, me perdoa em recorrer ao auxílio dos amigos.
       
      Tenho os seguintes CAMPOS no Mysql:
      ===[ id_movimento
      ===[ dta_movimento
      ===[ num_movimento
      ===[ status_movimento
       
      Minha dúvida é o seguinte:
      ==> como faço para no campo num_movimento após o insert no banco de dados, o sistema possa garvar da seguinte forma:
      ========[ pega o ID do movimento = 1
      ========[ pega uma String como:  E = entrada | S = saída | D = devolução
      ========[ grava no campo num_movimento desta forma: E-00001
       
      Na MODEL capturo o último ID desta forma:
      //Pega o Último ID public function lastID(){ return $this->db->insert_id(); }  
      Na CONTROLLER trago a informação do último ID desta forma:
      $ultimoID = $this->movimentos_model->lastID();  
      Grato a todos.
       
      Cesar
    • By nazesaria
      Ola, gostaria de saber se tem alguma forma de eu baixar essas paginas completa em .php, se eu clico nela vai em uma pagina em branco.
      E acessando direto do site não teria como, gostaria de ser por esse metedo, é possível? Como?
    • By R4gn3ls0n
      Ao hospedar um arquivo no phpMyAdmin apareceu esse erro, como posso resolver?
      Linhas:
      -- version 4.3.8
      -- http://www.phpmyadmin.net
      --
      -- Host: localhost:3306
      -- Tempo de geração: 28/02/2018 às 19:49
      -- Versão do servidor: 5.6.32-78.1
      -- Versão do PHP: 5.6.30
       
      ______________________________
       
      SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
      SET time_zone = "+00:00";
       

×

Important Information

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