如何在不影响php中的任何其他功能的情况下清除以前回显的结果?

时间:2013-03-10 16:21:04

标签: php javascript mysql ajax

我目前正在使用搜索框搜索特定项目的网站上工作。页面以表格格式回显结果。到目前为止一切都很完美但是当我尝试过滤结果(取决于功能)时,我得到两组结果。一个先前显示的结果表,另一个是过滤结果。我不希望以前的结果再次显示在屏幕上而不影响任何其他过程。会话之类的东西?我不确切知道如何处理这种情况。

<?php

include'search.php';// form for a search box. 


         if (isset($_POST['search_name']))  {
$search_name=mysql_real_escape_string(htmlentities(trim($_POST['search_name'])));
$errors = array();

if (empty($search_name)){

    $errors[] ='please enter a search term';
    }
else if (strlen($search_name)<3){
    $errors[] = 'your search term must be three or more characters'; 
    }
else if (1==2){
    $errors[] ='your search for '.$search_name.' returened no results';
    }
if (empty($errors)){



   filter($search_name); //it display another form in the navigation bar to filter the search result.


   search_results($search_name);//searches for all the result onthe database depending on the keyword  entered in searchbox. 


    } else{

    foreach($errors as $error)  {
        echo $error,'</br>';
        }
    }

}

?>

1 个答案:

答案 0 :(得分:1)

请参阅此代码:

echo 'world';
echo 'hello !';

您可以使用ob_start()ob_get_contents()ob_clean()拦截回声。

ob_start();
echo 'world';

var $echoed = ob_get_contents();
ob_clean();

// real echo
echo 'hello ' . $echoed . '!';

// now you see
// hello world!

因为ob'输出缓冲'是PHP的原生,你可以使用它与函数,包括等等。我正在使用这种方法,在我的控制器流中截取(1.)输出,并拦截(2.)视图的输出,所以我可以稍后编写它们(例如将PHP错误呈现到调试div中。