J0hnny1234
Grünschnabel
Hi,
Ich habe mir mit PHP und eine MYSQL Datenbank eine Suchfunktion gebaut. Bisher stand im <form> teil nur action="search.php" drin und somit werden die Suchergebnisse auf einer extra seite angezeigt. Ich möchte die suchergebnisse allerdings in einem Modal anzeigen lassen. Daher habe ich den action tag jetzt gegen folgendes ausgetauscht: data-toggle="modal" data-target="#smodal"
Dadurch popt mein model, in das ich jetzt den Inhalt der seite "search.php" reinkopiert habe für einen Bruchteil einer sekunde auf und verschwindet sofort wieder.
Wie kann ich das fixen?
Mein code für die Search Bar sieht so aus:
<form data-toggle="modal" data-target="#smodal" method="get">
<input type="text" name="q" id="searchBar" placeholder="" value="Suchen..." maxlength="50" autocomplete="on" onmousedown="active();" onblur="inactive();"><button class="btn buttondefinition button" type="submit" id="searchBtn" role="button"><i class="fa fa-search"></i></button>
</form>
Und das modal so:
<div class="modal" id="smodal">
<div class="modal-dialog">
<div class="modal-content mittig">
<div class="modal-header">
<h2 class="modal-title"> Suchergebnisse</h2>
<button class="close" type="button" data-dismiss="modal">x</button>
</div>
<div class="modal-body">
<?PHP
$conn = mysqli_connect("localhost","root","","search");
if(mysqli_connect_errno()) {
echo "failed to connect: " . mysqli_connect_error();
}
?>
<?PHP
$output = "";
if (isset($_GET["q"]) && $_GET["q"] !=="") {
$searchq = $_GET["q"];
$q = mysqli_query($conn, "SELECT * FROM search WHERE keywords LIKE '%$searchq%' OR title LIKE '%$searchq%' OR description LIKE '%$searchq%'") or die(mysqli_error());
$c = mysqli_num_rows($q);
if($c == 0) {
$output = "Kein Suchergebnis für <b>" .$searchq. "</b>.";
} else {
while ($row = mysqli_fetch_array($q)) {
$id = $row["id"];
$title = $row["title"];
$desc = $row["description"];
$link = $row["link"];
$output .= "<a href=" . $link . ">
<h3>" . $title . "</h3>
<p>" . $desc . "</p>
</a>";
}
}
} else {
header("location: ./");
}
print("$output");
mysqli_close($conn);
?>
</div>
</div>
</div>
</div>
Vielen Dank im Vorraus!
VG Jan
Ich habe mir mit PHP und eine MYSQL Datenbank eine Suchfunktion gebaut. Bisher stand im <form> teil nur action="search.php" drin und somit werden die Suchergebnisse auf einer extra seite angezeigt. Ich möchte die suchergebnisse allerdings in einem Modal anzeigen lassen. Daher habe ich den action tag jetzt gegen folgendes ausgetauscht: data-toggle="modal" data-target="#smodal"
Dadurch popt mein model, in das ich jetzt den Inhalt der seite "search.php" reinkopiert habe für einen Bruchteil einer sekunde auf und verschwindet sofort wieder.
Wie kann ich das fixen?
Mein code für die Search Bar sieht so aus:
<form data-toggle="modal" data-target="#smodal" method="get">
<input type="text" name="q" id="searchBar" placeholder="" value="Suchen..." maxlength="50" autocomplete="on" onmousedown="active();" onblur="inactive();"><button class="btn buttondefinition button" type="submit" id="searchBtn" role="button"><i class="fa fa-search"></i></button>
</form>
Und das modal so:
<div class="modal" id="smodal">
<div class="modal-dialog">
<div class="modal-content mittig">
<div class="modal-header">
<h2 class="modal-title"> Suchergebnisse</h2>
<button class="close" type="button" data-dismiss="modal">x</button>
</div>
<div class="modal-body">
<?PHP
$conn = mysqli_connect("localhost","root","","search");
if(mysqli_connect_errno()) {
echo "failed to connect: " . mysqli_connect_error();
}
?>
<?PHP
$output = "";
if (isset($_GET["q"]) && $_GET["q"] !=="") {
$searchq = $_GET["q"];
$q = mysqli_query($conn, "SELECT * FROM search WHERE keywords LIKE '%$searchq%' OR title LIKE '%$searchq%' OR description LIKE '%$searchq%'") or die(mysqli_error());
$c = mysqli_num_rows($q);
if($c == 0) {
$output = "Kein Suchergebnis für <b>" .$searchq. "</b>.";
} else {
while ($row = mysqli_fetch_array($q)) {
$id = $row["id"];
$title = $row["title"];
$desc = $row["description"];
$link = $row["link"];
$output .= "<a href=" . $link . ">
<h3>" . $title . "</h3>
<p>" . $desc . "</p>
</a>";
}
}
} else {
header("location: ./");
}
print("$output");
mysqli_close($conn);
?>
</div>
</div>
</div>
</div>
Vielen Dank im Vorraus!
VG Jan