将新行附加到 MySQL 查询调用的 HTML 表中,并更新 MySQL 中的当前列


Append new rows to HTML table being called by MySQL query, and update current column in MySQL

两部分问题。 这里不一定要求任何代码,只需说明如何处理它就足够了。

我在 MySQL 表中存储了一个表,我们称之为 $row['request'] 当回显时将打印一个完整的<table><tr><td></td></tr></table>

这一切都是由用户在提交任务时生成的,我目前真的无法改变这一点。

因此,假设用户决定在几天内通过向底部添加一些新行来更新$row['request'] HTML 表的 HTML 表。

如何在回显结果末尾的 </table> 标记之前添加这些行?

这是我添加新行的内容:JsFiddle 示例。

如果这就足够了,那么我将如何将这个新的HTML数据添加到MySQL中的现有字段中?

我应该使用类似的东西吗

$query = "UPDATE t1
   SET request = CONCAT(request,'$extra')
   WHERE id = '$id'";

我很困惑在添加新 HTML 之前,如何将它附加到仍在标记的其他</table>

我也可以重写整个字段,但我不太确定如何将整个表作为 PHP 变量抓取并提交。 一如既往地感谢您的帮助。

编辑:我将<table><tr><td></td></tr></table>信息存储在MySQL表的单个字段中。 我知道这很烦人,但该表最初是由用户将内容从 Excel 表格粘贴到文本区域生成的,提交查询将 ' 和 ''t 替换为表格标签。 因此,当我单击"添加行"时,我需要将新的<tr><td></td></tr>信息以及其中的数据提交到 UPDATE 查询。 这是我的问题。

根据您的评论,我猜您想"将新tr的整个 HTML 字符串提交到 MySQL",您可以这样做:

var counter = 1;
jQuery('a.add-row').click(function(event){
  event.preventDefault();
  counter++;
  var $tr = $( '.requesttable tr:last' ) // assume new <tr> always the last one
  $tr.find( 'input' ).each( function() {
    $(this.parentNode).html( this.value ) // get rid of <input> tag, only keep value
  })
  $.ajax( {
    url: url, // PHP page that receive data and update MySQL
    data: $tr.get(0).outerHTML, // "<tr><td>value1</td><td>value2</td></tr>"
    type: 'post', // or 'get', depends on your PHP page
    success: function() {
      // if added, append new row
    },
    error: function() {
      // if failed, alert user
    }
  } )
});