0

我开始学习 php,我遇到了这个问题。我的表单中有 html 代码:

<label for="u">Usability <span id='u_score'>0</span> / 7</label>

我想用 id u_score 获取 span 的内部 html。我如何在 php 中执行此操作?任何帮助,将不胜感激。

我已经试过了

$u_score = $_POST["u_score"];

但这会返回 undefined,因为没有与 span 关联的值。

谢谢

4

4 回答 4

2

您可以做的是将跨度文本内容复制到将发布的隐藏输入中:

<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript">
    function copySpanContent() {
    document.getElementById("u_score_value").value =
    document.getElementById("u_score").firstChild.data;
    }
</script>
</head>
<body>
<form method="POST" action="PHPSCRIPT.php" onsubmit="copySpanContent()">
<label for="u">Usability <span id='u_score'>0</span> / 7</label>
<input type="hidden" name="u_score_value" id="u_score_value">
<button type="submit">submit</button>
</form>
</body>
</html>

然后您可以使用 $_POST['u_score_value'] 从 PHP 中获取值。

于 2013-04-21T10:25:22.243 回答
1

您可以使用Simple HTML DOM,它是 PHP 的 HTML 解析器。下载它然后使用这个片段:

include('simple_html_dom.php');
$html = file_get_html('yourHTMLfile.html');
$IDs = $html->find('span #u_score');
foreach($IDs as $id)
{
    echo $id.'<br />';
}

希望这可以帮助!

于 2013-04-21T09:59:31.230 回答
0

php 实际上生成 html 并且在页面完成构建后不执行任何工作(除非通过 ajax 之类的方法调用)来影响页面。

Javascript 可以获取 DOM 元素值,但 PHP 不能。

您使用的方法将不起作用,因为该变量不是 $_POST 变量,而只是一个 HTML 元素。

于 2013-04-21T09:55:30.587 回答
0

请了解客户端(Javascript)和服务器(PHP)之间的分界线。

您可以使用 PHP 来提供您需要的 HTML。

您还可以使用 Javascript 来查看 DOMgetElementById来做生意。

于 2013-04-21T09:57:04.873 回答