当我尝试将First_Name和Last_Name更新到数据库时,会将空表单传递给数据库,因此不会更新任何信息。我需要帮忙吗?
这是迄今为止的工作.... 的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';
}
?>
答案 0 :(得分:1)
我在edit.php
中看到您尝试获取firstname
和lastname
值,但是从您的JS部分发送了这些值,结果edit.php
中没有任何信息所以我建议你发送ajax
请求,以便获得它们:
if(confirm("Are you sure you want to edit this?"))
{
$.ajax({
url:"edit.php",
method:"POST",
data:{"id":id,"first_name":first_name,"last_name":last_name},
dataType:"text",
success:function(data){
if(data==1) {
alert('data edited Successfully ....!');
}
现在您已使用ajax请求发送了所需的值,因此您可以通过键入edit.php
轻松地在$fn = $_POST["first_name"];
中获取这些值
我希望它有用
答案 1 :(得分:0)
以下是一些可能有用的更新:
https://jsfiddle.net/Twisty/t2pgt267/
<强> HTML 强>
<div class="container">
<div id="disp_data">
<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>
<tr>
<td>998</td>
<td class="first_name" data-first-name="Jane" contenteditable>Jane</td>
<td class="last_name" data-last-name="Smith" contenteditable>Smith</td>
<td>
<button type="button" class="edit_button" name="edit" data-name-id="999">Edit</button>
</td>
</tr>
<tr>
<td>999</td>
<td class="first_name" data-first-name="John" contenteditable>John</td>
<td class="last_name" data-last-name="Smith" contenteditable>Smith</td>
<td>
<button type="button" class="edit_button" name="edit" data-name-id="999">Edit</button>
</td>
</tr>
<tr>
<td></td>
<td id="first_name" contenteditable></td>
<td id="last_name" contenteditable></td>
</tr>
</table>
</div>
</div>
</div>
<强>的jQuery 强>
$(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_button', function(e) {
var id = $(this).data("name-id");
var first_name = $(this).closest("tr").find(".first_name").val();
var last_name = $(this).closest("tr").find(".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,
"first_name": first_name,
"last_name": last_name
},
dataType: "text",
success: function(data) {
if (data == 1) {
alert('data edited Successfully ....!');
}
fetch_data();
}
});
}
});
});