【问题标题】:Get HTML's <TD> Value获取 HTML <TD> 值
【发布时间】:2017-10-27 15:33:03
【问题描述】:

我想从我的表数据(标签)中获取静态值并将其显示到另一个页面。我应该为此使用 jQuery 还是使用 PHP?

Example.php 表:

                                <table width="100%" class="table table-striped table-bordered table-hover display" id="dataTables-example">
                                <thead>
                                    <tr>
                                        <th>Race</th>
                                        <th>Role</th>
                                        <th>2015</th>
                                        <th>2016</th>
                                        <th>2017</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    <tr class="Testing">
                                        <td>BLAH</td>
                                        <td>ANOTHA_BLAH</td>
                                        <td>25</td>
                                        <td>26</td>
                                        <td>27</td>
                                    </tr>
</table>

我尝试在 PHP 中进行类似于

       <form action = "PutTheExampleTableValuesHere.php" method = "post">
           TABLE BLAH BLAH BLAH
       <input type="submit" name="submit" value="View Line Chart">

并使用 $_POST 函数并将其简单地回显到其他页面,但我的逻辑失败了。

请指导。谢谢!

【问题讨论】:

  • 您可以在form 标签内插入textarea 标签,并在其中输入静态表格的代码。这样,您的表单在提交时会将POST 该信息发送给您的action

标签: javascript php jquery html


【解决方案1】:

使用 $_POST 逻辑比在此解决方案中使用 javascript/ajax 更简单。只需将您的数据放在某个段落或类似内容中并为其命名,以便您可以从另一个外部页面的帖子中访问它,您在表单中调用“方法”参数。 示例:

index.php:

  <form action="test.php" method="post">
  <table>
      <td>
          <div id="blah" name="blah" value="blah">BLAH</div>
      </td>
      <td>
          <div id="anoblah" name="anoblah" value="anotherblah">BLAH</div>
      </td>
      <input type="submit" id="test" name="test">
  </table>
  </form>

test.php

   <?php
        if(isset($_POST["test"]))
             echo "td1: ".$_POST["blah"]." td2: ".$_POST["anoblah"];


   ?>

【讨论】:

  • 您好,@Orange Orange 我无法获得尝试 $_POST 的值。我在不同的 PHP 页面上遇到了这个问题,但我能够通过将它移动到
    标记内来解决它。但这一次,它不起作用。
  • 如果您发布您的代码,我很乐意帮助您,兄弟
  • 请给我一封电子邮件,以便我发送给您。谢谢!
【解决方案2】:

您可能可以使用 jquery 在表单结构中创建一个数组(使用隐藏输入)。然后你可以在表单提交后阅读它,使用 $_POST 变量。

<script>
$(document).ready(function(){
  $("input[type=submit]").click(function(e) {
    e.preventDefault();
    var form = $("form");
    $(".Testing td").each(function() {
      form.append('<input type="hidden" name="data[]" value="' + $(this).html() + '">');
    });
    form.submit();
  });
});
</script>

这将从“测试”类下的 TD 值创建一个数组,您可以通过 $_POST['data'](数组类型)访问该数组。

<?php 
if(isset($_POST['data'])) {
  foreach($_POST['data'] as $key=>$val) {
    echo $key.' = '.$val.'<br>';
  }
}
?>

【讨论】:

    【解决方案3】:

    您可以使用 AJAX 将整个 html 代码发布到其他页面 (URL):

    $.post(URL, {data: encodeURIComponent($("#dataTables-example").html())})
    

    在其他页面(URL),可以使用php的$_POST获取:

    <form action = "PutTheExampleTableValuesHere.php" method = "post">
        <table ...>
            <?php urldecode($_POST['data']) ?>
        </table>
    <input type="submit" name="submit" value="View Line Chart">
    

    更新:
    @SimoneWalter 然后您可以使用 TD 值在 $.post 中组合 data。例如:

    data = []
    $.each($("#dataTables-example TR"), function(tr){
        // get td values
        tmp = []
        $.each($(tr).find('TD'), function(td){
            tmp.push($(td).html())
        })
        data.push(tmp)
    })
    // post the data
    // data will be something like:
    // [['Race', 'Role', '2015', ...], ...]
    $.post(URL, {data: data})
    

    然后在另一页上:

    <form action = "PutTheExampleTableValuesHere.php" method = "post">
        <table ...>
            <thead>
                <?php foreach($_POST['data'] as $tr): ?>
                <tr>
                    <?php foreach($tr as $td): ?>
                    <td><?php echo $td ?></td>
                    <?php endforeach ?>
                </tr>
                <?php endforeach ?>
            </thead>
        </table>
    <input type="submit" name="submit" value="View Line Chart">
    

    【讨论】:

    • 嗨,我的表格数据将是整数,并将用作制作图表的变量。这就是为什么我要单独获取每个 TD 值的原因。
    • 嗨,@Panwen Wang。谢谢您的答复!通过阅读我的学生知识的代码,它没有指定每个表数据,因为没有提供特定的 ID?我希望每个 ID 都有一个 ID,以便我可以专门调用它们。
    • @SimoneWalter 其实还有隐含的ID,即tmp数组中数据的索引和data数组的索引。因为这些数据以固定的顺序存储在数组中。具体来说,tmp数组的索引是指TDs数据在每个TR中的索引,data的索引是指TRs在整个发布数据中的索引。所以在另一页,你可以通过&lt;?php foreach($_POST['data'] as $i =&gt; $tr): ?&gt;&lt;?php foreach($tr as $j =&gt; $td): ?&gt;获取这些索引
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-01
    • 1970-01-01
    • 2012-02-05
    • 1970-01-01
    • 2012-04-20
    • 1970-01-01
    • 2021-07-26
    相关资源
    最近更新 更多