2016-04-21 74 views
0

我有一個form,人們可以在該數據庫中搜索某個用戶。當他們搜索用戶並點擊提交時,他們被重定向到不同的頁面並顯示結果。在html中顯示php結果

我唯一的問題是,結果被需要的html標籤之前顯示 - 這裏的頁面的樣子通過檢查元素的例子:

"Bobby123 


" 
<!DOCTYPE html> 
<html> 
<body> 
</body> 
</html> 

如何顯示結果所需的HTML AFTER標籤?如何設置「設置位置」以顯示結果?

這裏是我的代碼:

<?php 
if(isset($_POST['submit'])) { 
    $term = $_POST['search']; 
    $searchuser = $stmt = $con->prepare("SELECT * FROM users WHERE username LIKE :term"); 
    $stmt->bindValue(':term', '%'.$term.'%'); 
    $stmt->execute(); 
    if($searchuser->rowCount() > 0) { 
     while($row = $searchuser->fetch()){ 
      $name = $row['username']; 
      echo $name; 
     } 
    }else{ 
     echo 'No results'; 
    } 
} 
?> 

<form method="post" action="results.php"> 
<input name="search" type="search"> 
<input type="submit" name="submit"> 
</form> 

上results.php的代碼簡單地說就是:

<!DOCTYPE html> 
<html> 
<body> 
</html> 

如果可能的話,我不喜歡用編碼如Javascript,jQuery的,或任何在客戶端運行。

+0

你是如何顯示的結果在結果.php沒有任何PHP代碼? –

+1

不要回顯,存儲結果並將它們放在文檔中屬於的位置。 – chris85

+0

@ raptor96'form'元素中的'action'標籤顯示結果results.php –

回答

3

而不是

if($searchuser->rowCount() > 0) { 
    while($row = $searchuser->fetch()){ 
    $name = $row['username']; 
    echo $name; 
}}else{ 
    echo 'No results'; 
} 
} 

使用

if($searchuser->rowCount() > 0) { 
    $content = ""; 
    while($row = $searchuser->fetch()){ 
     $content .= '<p>' . $row['username'] . '</p>'; 
    } 
}else{ 
    $content = 'No results'; 
} 

然後,在你的HTML(你想要的文字顯示)

<HTML> 
<BODY> 
<?PHP echo $content; ?> 
</BODY> 
</HTML> 
+0

剛剛試過這個代碼,它確實在請求的地方顯示結果,但它只顯示數據庫中的一個結果。 –

+0

@ carve23.himd你需要將它存儲到一個數組,然後遍歷HTML中的數組。 – chris85

+0

謝謝@ carve23.himd。我應該補充說,如果你有多個名字,你首先需要設置$ content =「」;在while循環之外,然後放$ content。= $ name;在while循環中,以便顯示多個名稱。 – fislerdata