0

两部分问题。不一定要在这里要求任何代码,只要一个关于如何处理它的方向就足够了。

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

这都是用户在提交任务时生成的,我目前真的无法更改。

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

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

这是我添加新行的内容:JsFiddle Example

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

我应该使用类似的东西吗

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

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

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

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

4

1 回答 1

1

根据您的评论,我猜您想“将 new 的整个 HTML 字符串提交tr给 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
    }
  } )
});
于 2013-01-28T04:26:10.677 回答