我有一个网页,这是从字符串$details抓取信息,并通过搜索和显示结果寻找'displayname'。这是LDAP Active Directory查询。
我需要"$search .= "NameTitlePhoneMobileEmailDept'n";"只显示一次搜索已完成。在当前状态下,它对每个结果重复这一行。我怎样才能让这条线只显示一次呢?
// Address Book Search
$search .= "<div class='border'>'n";
$search .= '<form class="search-form-wrapper" method="GET">
<input type="text" name="q" id="search" placeholder="Search for Staff..." required>
<input type="submit" value="go" id="submit">
</form><br><br>';
if (count($staff)) {
if (isset($_GET['q'])) {
$query = rawurlencode( strip_tags($_GET['q']));
$query = ucfirst($query);
foreach ($staff as $key => $details) {
if(substr_count($details['displayname'], $query)){
$search .= "<table class='address_book'><tr><th>Name</th><th>Title</th><th>Phone</th><th>Mobile</th><th>Email</th><th>Dept</th></tr>'n";
$search .= "<tr><td>{$details['displayname']}</td>'n";
$search .= "<td>{$details['title']}</td>'n";
$search .= "<td>{$details['telephonenumber']}</td>'n";
$search .= "<td>{$details['mobile']}</td>'n";
$search .= "<td><a href='mailto:{$details['mail']}'>{$details['mail']}</a></td>'n";
$search .= "<td>{$details['department']}</td>'n";
$search .= "</tr>'n";
$search .= "</table>'n";
}
}
}
}
$search .= "</div><br>";
$layout->content($search);
要获得所需的功能性,可能必须将行:
$search .= "<table class='address_book'><tr><th>Name</th><th>Title</th><th>Phone</th><th>Mobile</th><th>Email</th><th>Dept</th></tr>'n"
移出循环(就在循环开始之前)。您只在循环中生成表的动态行。下面的代码片段说明了如何做到这一点:
<?php
// Address Book Search
$search = "";
$search .= "<div class='border'>'n";
$search .= '<form class="search-form-wrapper" method="GET">
<input type="text" name="q" id="search" placeholder="Search for Staff..." required>
<input type="submit" value="go" id="submit">
</form><br><br>';
if (count($staff)) {
if (isset($_GET['q'])) {
$search .= "<table class='address_book'><tr><th>Name</th><th>Title</th><th>Phone</th><th>Mobile</th><th>Email</th><th>Dept</th></tr>'n";
$query = rawurlencode( strip_tags($_GET['q']));
$query = ucfirst($query);
foreach ($staff as $key => $details) {
if(substr_count($details['displayname'], $query)){
$search .= "<tr><td>{$details['displayname']}</td>'n";
$search .= "<td>{$details['title']}</td>'n";
$search .= "<td>{$details['telephonenumber']}</td>'n";
$search .= "<td>{$details['mobile']}</td>'n";
$search .= "<td><a href='mailto:{$details['mail']}'>{$details['mail']}</a></td>'n";
$search .= "<td>{$details['department']}</td>'n";
$search .= "</tr>'n";
}
}
$search .= "</table>'n";
}
}
$search .= "</div><br>";
$layout->content($search);