我对PHP还是很陌生,所以我要在家做些实验。我已经设置了本地服务器。现在已经尝试了一段时间,但是我在解决最后一部分时遇到了问题。我不确定如何连接最后一部分。
这是我的 Index.php :
<?php
//readfile("show.html");
$jobs;
$rssFeed = kungsorJobsFetcher();
$page = isset($_GET['page']) ? $_GET['page'] : 0;
echo rss_kungsor_items_beautify1(getItems(), $page, 1000000);
function kungsorJobsFetcher(){
$feed = implode(file('https://recruit.visma.com/External/Feeds/AssignmentList.ashx?guidGroup=221caebb-3836-4036-8c83-edd6e630ec79'));
$xml = simplexml_load_string($feed);
$res = array();
foreach($xml->Assignments->Assignment as $job){
list($date, $trash) = explode( 'T', $job->ApplicationEndDate );
$item["date"] = $date;
$item["link"] = $job->ReadMoreUrl;
$item["city"] = $job->AccountName;
foreach($job->Localization->AssignmentLoc->AssignmentTitle as $jobTitle){
$item["title"] = $jobTitle;
}
array_push($res, $item);
}
$GLOBALS['jobs'] = $res;
}
function getItems() {
// print_r($GLOBALS['jobs']);
return $jobs;
}
function rss_kungsor_items_beautify1($items, $page = 0, $length = 5, $link = ""){
//$full_items = $items;;
$items = $GLOBALS['jobs'];
//$items = array_slice($items, $page*$length, $length);
$markup = '';
$markup = file_get_contents('table_header_kungsor.tpl.php', true);
$rows = '';
if(count($items) > 0) {
foreach($items AS $item) {
$link_item = $item['link'];
if ($link != "") {
$link_item = $link;
}
$date = date_format(date_create($item['date']), 'Y-m-d');
if (strpos($item["date"], '/') !== false){
$date = date_format(strtotime($item['date']), 'Y-m-d');
}
$rows .= "<tr><div class='annons-item kungsor-item'>" .
"<div class='left'>";
$rows .= "<div class='content'>" .
"<h4><a class='kungsor-link' target='_blank' href='$link_item'>" . $item['title'] . "</a></h4>" .
"<div class='subcontent'>" .
"<div class='item'><p>" . $item['city'] . "</p></div>" .
"<div class='item'><p>Sista ansökningsdag: $date</p></div>" .
"</div>" .
"</div>" .
"</div>" .
"<a target='_blank' href='$link_item' class='apply-btn hiddenSM'>Ansök här</a>" .
"</div></tr>";
}
}
$markup = preg_replace('/\{rows\}/', $rows, $markup);
return $markup;
}
?>
<script type="text/javascript">
var simple = '<?php echo $GLOBALS['jobs']; ?>';
jQuery('body').on('keyup','input.test',function(){
console.log(simple);
});
</script>
这是我的 table.header.php
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>
</head>
<body>
Enter your name: <input class="test" type="text" id="fname" onkeyup="myFunction()">
<table>
<tr>
{rows}
</tr>
</table>
</body>
</html>
我正在寻找什么:
如您所见,表中填充了变量rows
。每当用户在输入字段中输入内容时,我都希望它也浏览所有标题并仅显示相关标题
我当时想做一个foreach循环来遍历所有项目(行),拆分标题字符串并搜索匹配的单词。如果匹配,则将其添加到临时数组中。完成所有操作后,用结果更新行(这是一个好的解决方案,还是有一个更好的有效解决方案?)
我知道我想做什么,但我不知道该怎么做。一个简单的示例或一些说明,甚至更好的一些示例代码将非常棒!谢谢!
您可以复制并粘贴代码,并且应该看到一些行从提供的xml中获取数据,以便于测试。
我已经从Web服务器中的外观设置了类似的结构,并具有所有最低要求以显示相关内容。使用此方法可在其中回显包含所有html标记等的php变量。
所以总结一下。在我的输入字段中输入每个keyup。我的键入功能将启动。使用该字段中的信息来搜索$ jobs变量中包含的标题。我如何使html自动重新呈现表格?