获取HTML的价值

时间:2017-10-27 15:33:03

标签: javascript php jquery html

我想从我的表数据(标签)中获取静态值,并将其显示到另一个页面。我应该使用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函数并简单地将其回显到其他页面,但我的逻辑失败了。

请指导。谢谢!

3 个答案:

答案 0 :(得分:0)

您可以使用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值在data中撰写$.post。例如:

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">

答案 1 :(得分:0)

使用$ _POST逻辑比使用javascript / ajax更简单。只需将您的数据放在某个段落或类似的段落中,并为其命名,这样您就可以从其他外部页面的帖子中访问它,并且#34;方法&#34;形式参数。 例如:

的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"];


   ?>

答案 2 :(得分:0)

您可以使用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>';
  }
}
?>