Avatar billede compac Seniormester
23. februar 2020 - 17:16 Der er 2 kommentarer og
1 løsning

Søgefelt i formular - mysqli

Jeg har en hjemmeside hvor jeg har en oversigt over mine vandreture optaget på GPX.
pknudsen.net
Jeg vil nu oprette et søgefelt, så man kan søge på  turens titel (Fra - Til) Der forekommer flere ture med samme titel, så det skal være muligt at vælge den ønskede ud fra datoen. Jeg forestiller mig at søgeresultatet skal vises en dropdownbox med de fundne titler og samtidig vise datoen for turen, så man kan vælge.
Felter i min database: id, fotoxml, km, titel, sted, dato, mappe
Min nuværende kode: -udsnit
$query = "SELECT * FROM vandreture ORDER BY dato";
if ($result = $link->query($query)) {   
    $row_cnt = mysqli_num_rows($result);
    $antal = $row_cnt;
}
$query = "SELECT * FROM vandreture ORDER BY dato DESC limit $vis_fra, $pr_side";
$tur = ($link->query($query)); 
$marker_status = 'unchecked';
if (mysqli_num_rows($tur) > 0) {
    while ($a = mysqli_fetch_object($tur)) {
              $turid = $a ->id;
              $turd = $a ->dato;
              $tmaal =  $a->titel;
              $tsted = $a -> sted;
              $turdate = date('d-M-Y',strtotime($turd));           
              $tmappe = $a -> mappe;             
              $tkm = $a -> km;             
echo '<tr onmouseover="ChangeColor(this, true)" style="cursor:pointer";
              onmouseout="ChangeColor(this, false)";           
              onClick="location.href=\'gpsviewer.php?gpstur='.$turid.'\'">';

echo "<td style='width:30px' align='left'><input type=radio name=mk value='marker'>";                     
echo "<td  style='width:110px' align='left'>$turdate</td>";
echo "<td  style='width:360px' align='left'>$tmaal</td>";
if ($tkm != 0)  {
echo "<td style='width:10px' align='right'>$tkm</td>";
echo "<td style='width:10px' align='right'>km</td>";
}
else
{
echo "<td style='width:10px' align='right'>&nbsp;</td>";
echo "<td style='width:10px' align='right'>&nbsp;</td>";
}
echo "</tr>";             
}
-------------------------
Det skal ligge som et særskilt felt på min nuværende side.
Grundstrukturen for koden skal nok være:
<!DOCTYPE html>
<html>
<head>
</head>
<h1>Søgning på tur</h1>
    <form action="gpxviewer.php"">
        Turnavn:
        <input type="text" name="turnavn">
        <input type="submit" value="Søg" >
    </form>
    <?php
    if (isset($_GET['turnavnl'])) {
        $search = $_GET['turnavn'];
        $sql = "SELECT * FROM vandreture WHERE titel LIKE '%" . $search . "%'";
        $result = $conn->query($sql) or die($conn->error());
        if ($result->num_rows > 0) {
            while ($row = $result->fetch_assoc()) {
                echo "Tur: " . $row["titel"] . " - Dato: " . $row["dato"]. "<br>";
            }
        } else {
            echo "0 results";
        }
        $conn->close();
    }
    ?>
</html>
- hvor gpxviewer.php er næste side som bruger  $turid  til at finde en gpx-fil.

-tilgiv mig min over 10 år gamle kode.
Avatar billede Xelot Juniormester
06. marts 2020 - 14:50 #1
Jeg tænker at du nok selv kan greje at lave søgningen i SQL, så præsentationen er nok mere det du søger.

Jeg er selv blevet ret glad for at bruge AJAX og PHP sammen.

Her er et RIMELIG nemt eksempel på hvordan det kan gøres: https://www.w3schools.com/php/php_ajax_php.asp
Avatar billede compac Seniormester
06. marts 2020 - 22:39 #2
Jeg kan se at der er store fordele ved at bruge AJAX, tak for det.
Dit indlæg bringer mig på sporet - læg et svar.
Avatar billede Xelot Juniormester
06. marts 2020 - 22:50 #3
Super at du kunne bruge det,

Jeg tror ikke at jeg har rettigheder til at give svar. Er kun 'Novice' herinde endnu. 😊
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester