2016-04-21 73 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