Когда я попытался внести обновление в First_Name и Last_Name в базу данных, пустая форма передается в базу данных, в результате информация не обновляется. Пожалуйста, мне нужна помощь?Проблемы с отправкой отредактированной формы с использованием ajax и PHP
Вот работа до сих пор .... index.php
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
</head>
<body>
<div class="container">
<div id="disp_data"></div>
</div>
</body>
</html>
<script>
$(document).ready(function(){
function fetch_data()
{
$.ajax({
url:"select.php",
method:"POST",
success:function(data){
$('#disp_data').html(data);
}
});
}
fetch_data();
//edit
$(document).on('click', '#edit', function(){
var id=$(this).data("id4");
//var first_name = $('#first_name').text();
//var last_name = $('#last_name').text();
var first_name = $('#first_name').val();
var last_name = $('#last_name').val();
if(id == '')
{
alert("Id is assigned automatically..");
return false;
}
if(first_name == '')
{
alert("Enter First Name");
return false;
}
if(last_name == '')
{
alert("Enter Last Name");
return false;
}
if(confirm("Are you sure you want to edit this?"))
{
$.ajax({
url:"edit.php",
method:"POST",
data:{id:id},
dataType:"text",
success:function(data){
if(data==1) {
alert('data edited Successfully ....!');
}
fetch_data();
}
});
}
});
});
</script>
select.php
<?php
$db = new PDO (
'mysql:host=localhost;dbname=db_name;charset=utf8',
'root', // username
'' // password
);
$output = '';
$result = $db->prepare('SELECT * FROM empinfo ORDER BY id DESC');
$result->execute(array());
$count = $result->rowCount();
$output .= '
<div align="center">
<table border="1" bordercolor="#00CCCC">
<tr>
<th width="10%">Id</th>
<th width="40%">First Name</th>
<th width="40%">Last Name</th>
</tr>';
if($count > 0)
{
while($row = $result->fetch()){
$output .= '
<tr>
<td>'.$row["id"].'</td>
<td class="first_name" first_name="'.$row["first_name"].'" contenteditable>'.$row["first_name"].'</td>
<td class="last_name" first_name="'.$row["last_name"].'" contenteditable>'.$row["last_name"].'</td>
<td><button type="button" name="edit" data-id4="'.$row["id"].'" id="edit">Edit</button></td>
</tr>
';
}
$output .= '
<tr>
<td></td>
<td id="first_name" contenteditable></td>
<td id="last_name" contenteditable></td>
</tr>
';
}
else
{
$output .= '<tr>
<td colspan="4">Data not Found</td>
</tr>';
}
$output .= '</table>
</div>';
echo $output;
?>
edit.php
<?php
error_reporting(0);
$db = new PDO (
'mysql:host=localhost;dbname=chat;charset=utf8',
'root', // username
'' // password
);
$id = $_POST["id"];
$fn = $_POST["first_name"];
$ln = $_POST["last_name"];
$update1 = $db->prepare('
UPDATE empinfo set
first_name = :first_name,last_name=:last_name
WHERE id= :id');
if($update1->execute(array(
':first_name' => $fn,':last_name' => $ln,
':id' => $id))){
echo 'Data Updated';
}
?>
Если я читаю это право, 'данные: {: ID}' имеет только один элемент. Таким образом, '$ _POST' будет иметь только один индекс:' id'. Где вы отправляете свое имя и фамилию? – Twisty