数据库无法识别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。请仔细检查下面的代码,你会弄错的。

$('#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 ();
});
});

最新更新