2013-04-21 63 views
0

我開始學習PHP和我來到這個問題。我有我的表格中的html代碼:獲取內部HTML與PHP

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

我想獲得id爲u_score的跨度的內部html。我如何在PHP中執行此操作?任何幫助,將不勝感激。

我已經嘗試

$u_score = $_POST["u_score"]; 

,但因爲沒有與跨度相關的值返回undefined。

謝謝

+0

您需要一個HTML或DOM解析器 – verbumSapienti 2013-04-21 09:55:16

+0

iif零是靜態的,您需要一個DOM解析器..如果不檢查保存零 – swapnesh 2013-04-21 09:56:14

回答

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> 

然後你可以從PHP與$ _ POST [「u_score_value」]的值。

0

PHP實際上產生的HTML,不執行任何工作(除非通過像AJAX的方法調用),已完成建設後,影響頁面。

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

您正在使用的方法將不起作用,因爲該變量不是$ _POST變量,而只是一個HTML元素。

0

請了解客戶端(Javascript)和服務器(PHP)之間的分界線。

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

您也可以使用Javascript通過getElementById來查看DOM來做生意。

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 />'; 
} 

希望這有助於!