そのため、複数の Web ページがあり、すべて同じ検索フォームが含まれています。ユーザーが入力を開始すると、結果のリストを含むページが読み込まれ、現在のページが置き換えられ、見つかったすべてのアイテムがクエリされて表示されます。ajaxでこれを行うにはどうすればよいですか? 結果ページ (別の .php ページ) に移動しても、実際には結果を表示できません。
たとえば、インデックス ページに次のフォームがあります。
<form action='films.php' method='get' id='zoekform'>
<input id="ZoekBalkSearch" type="search" name="zoekparameter" placeholder="Geef een zoekterm in."/>
<input id="ZoekButton" type="submit" value="Zoek"/>
</form>
そして、films.php ページで検索された映画を一覧表示するページがあります。
//controlleer of er een zoekparameter meegegeven is
if(!isset($_GET['zoekparameter']))
{
//haal alle films op gesorteerd volgens naam indien er geen zoekparameter meegegeven is
$query=$connection->prepare("SELECT id,filmnaam,filmjaar,regisseur,acteurs,posterlink FROM films ORDER BY filmnaam;");
}
else if ($_GET['zoekparameter']!='')
{
//anders haal de zoekparameter op
$tezoeken=$_GET['zoekparameter'];
//controleer ook of er misschien naar een jaar gezocht is en sla deze variabele op in $jaar
$jaar=intval($tezoeken);
//voeg eventuele extra karakters toe aan de zoekquery
$tezoeken='%'.$tezoeken.'%';
//zoek in de database (gebruik ook bindparams als beveiliging tegen sql injection)
$query=$connection->prepare("SELECT id,filmnaam,filmjaar,regisseur,acteurs,posterlink FROM films WHERE filmnaam ILIKE :zoek OR regisseur ILIKE :zoek OR acteurs ILIKE :zoek OR filmjaar=:jaar ORDER BY filmnaam;");
$query->bindParam(':zoek',$tezoeken,PDO::PARAM_STR);
$query->bindParam(':jaar',$jaar,PDO::PARAM_INT);
}
$query->execute();
//geef alle gevonden films terug in de table
while($row=$query->fetch(PDO::FETCH_BOTH))
{
$id=$row[0];
$filmnaam=$row[1];
$filmjaar=$row[2];
$regisseur=$row[3];
$acteurs=$row[4];
$poster=$row[5];
echo "<tr><td><a href='moviePage.php?id=$id'><img class='miniposter' src='$poster' alt='De poster van de film'/></a></td><td><a href='moviePage.php?id=$id'><strong>$filmnaam</strong></a></td><td><a href='moviePage.php?id=$id'>$filmjaar</a></td><td><a href='moviePage.php?id=$id'>$regisseur</a></td><td><a href='moviePage.php?id=$id'>$acteurs</a></td></tr>";
}
?>
前もって感謝します