簡體   English   中英

數據庫無法識別 id

[英]Database does not recognize id

我有以下問題。 編輯表格時,我的 PHP 代碼在將 id 發送到數據庫時無法識別記錄的 id。

我有以下表格:

      <form method="post" class="" id="formEditarFuncionario" action="">
    <input type="text" name="" id="idEditFunc" name="idEditFunc">
    <label class="">Nome: <br>
      <input type="text" name="nomeEditFunc" id="nomeEditFunc" required>
    </label><br>

    <label class="">E-mail: <br>
      <input type="email" name="emailEditFunc" id="emailEditFunc" required>
    </label>
    <div class="">


      <div class="">
        <label class="">Centro de Custo: </label><br>
        <select name="ccEditFunc" id="ccEditFunc" required>
          <option value=""></option>
          <option value="320">320 - Descrição do Centro de Custo</option>
          <option value="330">330 - Descrição do Centro de Custo</option>
          <option value="331">331 - Descrição do Centro de Custo</option>
          <option value="332">332 - Descrição do Centro de Custo</option>
          <option value="333">333 - Descrição do Centro de Custo</option>
          <option value="334">334 - Descrição do Centro de Custo</option>
          <option value="335">335 - Descrição do Centro de Custo</option>
          <option value="340">340 - Descrição do Centro de Custo</option>
          <option value="430">430 - Descrição do Centro de Custo</option>
        </select>
      </div>


      <label class=""  onkeydown="return event.key != 'Enter';">Cargo: <br>
        <input type="text" name="cargoEditFunc" id="cargoEditFunc" required>
      </label>

      <div class="">
        <label class="">Coordenador: </label><br>
        <select name="coordenadorEditFunc" id="coordenadorEditFunc" required>
          <option value=""></option>
          <option value="Almir Chitolina Gonçalves">Almir Chitolina Gonçalves</option>
          <option value="André Balestreri">André Balestreri</option>
          <option value="Lindomar Braz">Lindomar Braz</option>
        </select><br>
        <label>Nível: </label><br>
        <select name="nivelEditFunc" id="nivelEditFunc" required>
          <option value=""></option>
          <option value="administrador">Administrador</option>
          <option value="coordenador">Coordenador</option>
          <option value="funcionário">Funcionário</option>
        </select><br>
      </div>


    </div>


    <div class="footer_modal_edit">
      <br>
      <button class="btnModal" style="background-color: red; color: white; border: none"
        type="button" id="btnFechar">Fechar</button>
      <input style="background-color: green; color: white; border: none" class="btnModal salvarModalFunc"
        id="btnSalvar" type="submit" form="formEditarFuncionario" value="Atualizar">
    </div>
  </form>
<script>

const modal = document.getElementById('modal');
const btnFechar = document.getElementById('btnFechar')
const btnSalvar = document.getElementById('btnSalvar');
const section = document.getElementById('funcionarios');
const idTitulo = document.getElementById('idTitulo');


let pegarId = document.getElementById('idEditFunc');

  console.log()

   btnFechar.addEventListener("click", function(){
      modal.classList.add("esconder");
      section.style.overflowY="auto";
    })
</script>

當用戶點擊提交表單時,會發送一個 AJAX 請求。

 $('#formEditarFuncionario').submit(function(e){
  
  e.preventDefault();

  var u_nome = $('#nomeEditFunc').val();
  var u_email = $('#emailEditFunc').val();
  var u_cc = $('#ccEditFunc').val();
  var u_cargo = $('#cargoEditFunc').val();
  var u_coordenador = $('#coordenadorEditFunc').val();
  var u_nivel = $('#nivelEditFunc').val();

console.log(u_nome, u_email, u_cc, u_cargo, u_coordenador, u_nivel);

  $.ajax({
    url: 'http://localhost/adm/modais/EDITAR_FUNCIONARIO/editarFuncionarios.php',
    method: 'POST',
    data:  {nomeEditFunc: u_nome, emailEditFunc: u_email, ccEditFunc: u_cc, cargoEditFunc: u_cargo, coordenadorEditFunc: u_coordenador, nivelEditFunc: u_nivel},
    dataType: 'json'
  }).done(function(result){
    console.log(result);
    $('#nomeEditFunc').val('');
    $('#emailEditFunc').val('');
    $('#ccEditFunc').val('');
    $('#cargoEditFunc').val('');
    $('#coordenadorEditFunc').val('');
    $('#nivelEditFunc').val('');
    getComment2 ();
  });


});
function getComment2 (){
$.ajax({
     url: 'http://localhost/adm/selecionarFuncionarios.php',
     method: 'GET',
     dataType: 'json'
    }).done(function(result){
      var box_comm = document.querySelector('#tbody');
            while(box_comm.firstChild){
                box_comm.firstChild.remove();
            }
          console.log(result)


          for (var i= 0;i<result.length;i++){
           let id = result[i].id;
           let nome = result[i].nome;
           let email = result[i].email;
           let cc = result[i].cc;
           let cargo = result[i].cargo;
           let nivel = result[i].nivel;

           $('#tbody').prepend("<tr class='tabelaFuncionario'><td class='dadoFuncionario'>"
           + result[i].id + "</td><td class='dadoFuncionario'>" 
           + result[i].nome + "</td><td class='dadoFuncionario'>" 
           + result[i].email + "</td><td class='dadoFuncionario'>" 
           + result[i].cc + "</td><td class='dadoFuncionario'>" 
           + result[i].cargo + "</td><td>  <a><button id='"+result[i].id+"' style = 'cursor: pointer' >Editar</button></a><button style = 'cursor: pointer;''>Anular</button></td></tr>");
           let idBtnEditar = document.getElementById(result[i].id);
           

           idBtnEditar.addEventListener("click", function(){
            console.log(modal);
            console.log(section);
            modal.classList.remove('esconder');
            modal.classList.add('mostrar');
            section.style.overflowY="hidden";
            idEdit = idBtnEditar.id;
            idTitulo.innerText = idEdit;
            pegarId.value = idEdit;
           })
          
          }
              
    }
    );

}

執行 ajax 中的命令時,將數據發送到 PHP 中的以下文件中。

    header('Content-Type: application/json');

$nomeEditFunc = $_POST['nomeEditFunc'];
$emailEditFunc = $_POST['emailEditFunc'];
$ccEditFunc = $_POST['ccEditFunc'];
$cargoEditFunc = $_POST['cargoEditFunc'];
$coordenadorEditFunc = $_POST['coordenadorEditFunc'];
$nivelEditFunc = $_POST['nivelEditFunc'];
$idEditFunc = $_POST['idEditFunc'];


$pdo = new PDO('mysql:host=localhost; dbname=banco;', 'root', '');
$stmt = $pdo->prepare('UPDATE funcionarios  SET nome = :no, email = :em, cc = :cc, cargo = :ca, coordenador = :co, nivel = :ni  WHERE id = :id');
$stmt->bindValue(':no', $nomeEditFunc);
$stmt->bindValue(':em', $emailEditFunc);
$stmt->bindValue(':cc', $ccEditFunc);
$stmt->bindValue(':ca', $cargoEditFunc);
$stmt->bindValue(':co', $coordenadorEditFunc);
$stmt->bindValue(':ni', $nivelEditFunc);
$stmt->bindValue(':id', $idEditFunc);

$stmt->execute();

但是 PHP 文件無法識別文件 ID。 但是,如果我手動將 id 號放入查詢中,則記錄會更新。 我究竟做錯了什么?

在 AJAX 請求提交表單中,您沒有通過 idEditFunc。 請通過下面的代碼 go,你會得到你的錯誤。

$('#formEditarFuncionario').submit(function(e){
    e.preventDefault();

    var u_nome = $('#nomeEditFunc').val();
    var u_email = $('#emailEditFunc').val();
    var u_cc = $('#ccEditFunc').val();
    var u_cargo = $('#cargoEditFunc').val();
    var u_coordenador = $('#coordenadorEditFunc').val();
    var u_nivel = $('#nivelEditFunc').val();
    var u_id = $('#idEditFunc').val();

    console.log(u_nome, u_email, u_cc, u_cargo, u_coordenador, u_nivel);

    $.ajax({
        url: 'http://localhost/adm/modais/EDITAR_FUNCIONARIO/editarFuncionarios.php',
        method: 'POST',
        data:  {idEditFunc:u_id, nomeEditFunc: u_nome, emailEditFunc: u_email, ccEditFunc: u_cc, cargoEditFunc: u_cargo, coordenadorEditFunc: u_coordenador, nivelEditFunc: u_nivel},
        dataType: 'json'
    }).done(function(result){
        console.log(result);
        $('#nomeEditFunc').val('');
        $('#emailEditFunc').val('');
        $('#ccEditFunc').val('');
        $('#cargoEditFunc').val('');
        $('#coordenadorEditFunc').val('');
        $('#nivelEditFunc').val('');
        getComment2 ();
    });

});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM