我想获取在运行时或动态设置的标记值。
我尝试使用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
答案 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
,但它可以是在页面中打印结果的另一种方式。它将是页面内容。