使用PHP和Jquery更新动态HTML表

时间:2019-05-20 22:17:22

标签: php jquery html dynamic-tables

我对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自动重新呈现表格?

0 个答案:

没有答案