首页 > 解决方案 > 将动态生成的 div 内容的副本发布到新页面

问题描述

所以我正在研究这一堆,并认为我看到的东西似乎比我想象的要复杂得多。

我只想获取表单中特定 div 中的所有 HTML 内容,包括标签和 id 等,并在提交后将其逐行复制到另一个页面上的新 div 中。某些内容是使用 javascript 动态生成的,例如表行及其数据,但在提交之前完成。

例如:取下面 div 中的表格,并将其发布到表单提交到的页面上的 div 中。(我正在使用 multipart/form-data 因为我有一个相同形式的文件输入)

<form action = "example.php" method = "post" enctype="multipart/form-data">
   <div class="table_container">
    <table class="example_table">
      <tr> <!--This HTML was all generated with Javascript-->
         <th>Test</th> 
         <th>Test</th>
         <th>Test</th>
      </tr>
      <tr>
         <td>Test</td>
         <td>Test</td>
         <td>Test</td>
      </tr>
      <tr>
         <td>Test</td>
         <td>Test</td>
         <td>Test</td>
      </tr>
    </table>
   </div>
</form>

我还没有尝试过任何东西,因为我还没有找到任何可能做到这一点的东西。很多人都提到了 PHP 包含功能,但我不需要整个页面,并且动态生成的我不知道它是如何工作的。

任何有关如何执行此操作的建议都将不胜感激,无论是 PHP、AJAX 还是 JQUERY 或其他任何东西。

在此先感谢
凯文

标签: javascriptphphtmlpostdynamically-generated

解决方案


JSON是要走的路。我有生成表的函数也将数据发送到数组

此代码选择数组(引用)并将数据字符串化,然后将其存储为隐藏输入(ref_data)的值:

function input_ref_JSON() {
  var refsJSON = JSON.stringify(references);
  $('#ref_data').val(refsJSON); //write JSON data to hidden input value
}

然后在 php 页面上,我对其进行解码并使用递归循环生成一个新表

<?php 
            $ref_JSON = $_POST['ref_data'];
            $ref_decoded = json_decode($ref_JSON);
        echo '<table>';
            foreach ($ref_decoded as $ref) {
                echo '<tr><td>'.$ref->type.'</td><td><a href="'.$ref->link.'">'.$ref->title.'</a></td><td>'.$ref->author.'</td><td>'.$ref->notes.'</td></tr>';
            }
        echo '</table>';
?>

推荐阅读