在表格行内创建一个文本表单,该表单在提交和更新数据库后保留

问题描述

我想创建一个在每个表行内都有一个文本框的列。用户可以在文本框中写入任何文本,然后单击“保存”按钮以将其保存在数据库中。此外,文本框可以无限次编辑。我的代码如下:

index.php

<?php include 'dbh.php' ?>
<?php include 'search.php' ?>

<?php
if (isset($_COOKIE["fcookie1"]))
  echo $_COOKIE["fcookie1"];
    else
      echo "Cookie Not Set";

if (isset($_COOKIE["fcookie2"]))
  echo $_COOKIE["fcookie2"];
    else
      echo "Cookie Not Set";

$var1 = $_COOKIE["fcookie1"];
$var2 = $_COOKIE["fcookie2"];

$conn = mysqli_connect($servername,$username,$password,$database);
$sql = "UPDATE test_data SET name='$var2' WHERE id='$var1'";
$query_run= mysqli_query($conn,$sql);
if($query_run){
  echo '<script type="text/javascript"> alert(Data Updated)</script>';
} else {
  echo '<script type="text/javascript"> alert(Data Not Updated)</script>';
}
?>

name_edit.php

[]

我的想法是让用户写任何文本。然后,当单击“保存”按钮时,我将“抓取”文本及其期望的ID并将其保存到Cookie。然后,该cookie将在name_edit.php中回显,并将其插入sql代码中,然后将更新我的数据库。

我不确定要在form标记内的“ value”中包含什么。如果数据库中有数据,则将其显示在也可以编辑的文本框中,否则显示空白以插入文本。

我是编码的新手,如果我的想法是正确的或者应该以其他方式使用它,我会感到困惑。

解决方法

我做了一些研究,发现我不必使用表格,而是使用“ contenteditable”。要编辑我更改的特定列

<td><input type='text' name='name' value='<?NOT SURE WHAT TO INCLUDE HERE ?>'/></td>
<td><input type='submit' value='Save' id='" . $row['test_id'] . "' class='name' /></td>

对此:

<td class='name' data-id1='" . $row['test_id'] . "' contenteditable='true'>".$row['name']."</td>

对于我的jquery,我添加了以下内容:

<style>
.editMode{
       border: 1px solid black;
      }
</style>
<script type="text/javascript">
$(document).ready(function(){

 // Add Class
 $('.name').click(function(){
  $(this).addClass('editMode');
 });

 // Save data
 $(".name").focusout(function(){
  $(this).removeClass("editMode");
  var id = $(this).closest('tr').find("td:nth-child(2)").text();;
  var value = $(this).text();

  $.ajax({
   url: 'name_edit.php',type: 'post',data: { value:value,id:id },success:function(response){
    alert('Edits Saved');
    return false;
   }
  });

 });

});
</script>

在php端,我只是做了以下事情:

<?php include 'dbh.php' ?>
<?php
$conn = mysqli_connect($servername,$username,$password,$database);

$field = $_POST['field'];
$value = $_POST['value'];
$id= $_POST['id'];

$sql = "UPDATE test_data SET name='".$value."' WHERE test_id='".$id."'";

mysqli_query($conn,$sql);

echo 1;

?>

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...