抓取动态设置/加载的Table元素的值

时间:2015-07-09 18:09:47

标签: php html dom

我想获取在运行时或动态设置的标记值。

我尝试使用php DOM,它与文档中的其他值一起使用是静态的,它不适用于动态分配的元素。请帮忙。

的index.php:

<table >
   <tr>
     <th>heading1</th>
     <th>heading2</th> 
   </tr>
   <tr> 
     <td  id="name"></td>    //value is set at runtime
     <td id="phone" ></td>   //value is set at runtime
   </tr>
</table>
<?php
   $doc = file_get_contents("index.php");
   $html = new DOMDocument();
   $html->loadHTML($doc);

   $searchNode = $html->getElementsByTagName("table");

   foreach( $searchNode as $searchNode ){ 
        $tdtag = $searchNode->getElementsByTagName("td"); 
        $result = $tdtag->item(0)->nodeValue;
   }
    print_r($result);
?>

当我更改$ tdtag = $ searchNode-&gt; getElementsByTagName(“td”);是$ tdtag = $ searchNode-&gt; getElementsByTagName(“th”); 它返回: 标题1

1 个答案:

答案 0 :(得分:0)

代码中的问题是您正在尝试访问尚未设置的值。 必须首先加载页面,然后您可以执行AJAX调用,将信息发送到服务器并将另一个.php设置为您的URL。 所以,你的JS代码应该是这样的:

jQuery(document).ready(function(){
  function sendAJAX() {
    jQuery.ajax({
      url: "your-page.php",
      data: {
        value: jQuery("#name").html()
      },
      success: function(data) {
        //data will be your server's response
      },
      error: function(data) {
        //callback called in case of error
      }
    });

  }
});

以上代码中的一些注释: - <td>标记不包含值。他们的HTML内容由innerHTML(vanilla JS)访问,html()(jQuery) - 您可以在AJAX通话中设置dataType。例如,它可以是JSON。如果您将JSON设置为dataType,则必须在后端返回JSON。如果没有,由于error例外,代码将归入parseError回调。

您的PHP代码:

$value = $_GET["value"];
//Do whatever you want with the value;
echo $value; //Or whatever (this will be what AJAX call receives on success

关于上面的PHP代码,我只是在做echo $value,但它可以是在页面中打印结果的另一种方式。它将是页面内容。