Dropdownmeny = SQL filter m.m.
Hej
Jag har gjort en hemsida vars syfte är att efter en droppdown meny (DM) sortera eller filtrera ut resultat från en SQL databas. I dm har jag olika alternativ eller filter och meningen är att när jag valt så ska denna resultera i att tabellen sorteras om och bara visar det som jag väljer enligt de dm jag har.
Koden för att komma åt SQL db:
try
{
$fssqlconn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$fssqlconn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $error)
{
echo "Anslutning misslyckades, kalla på Fredrik!" . $error->getMessage();
}
Tar ut datan ur db till DM görs enligt nedanstående kod:
try
{
$shfilterlan = 'SELECT lan FROM sokning';
$qlan = $fssqlconn->query($shfilterlan);
$qlan->setFetchMode(PDO::FETCH_ASSOC);
}
catch (PDOException $perrorlan)
{
die("Kunde inte upprätta en anslutning till $dbname" . $perrorlan->getMessage());
}
Den uttagna sql datan hanteras via koden:
<select id='optionshfilterlan' onchange='insertformlan()'>
<?php
// Presenterar datan enligt en loop
while ($rlan = $qlan→fetch()):
// Presenterar vald SQL data efter vald placering
echo "<option>" . htmlspecialchars($rlan['lan']) . '<br>' . "</option>";
// Slut på loop
endwhile;
?>
</select>
<input type="text" id="mittvallan" name="formvallan" placeholder="Välj">
Ett DM skapas och i den kör en while loop där vald sql data plockas in och presenteras i DM. Formuläret (<input type="text" id="mittvallan" name="formvallan" placeholder="Välj">) behövs egentligen inte men mer om det senare!
Insertformlan() i DM koden aktiverar ett javaskript, vars syfte är att placera det jag väljer i formuläret med ( formvallan), enligt:
function insertformlan()
{
var selectedlan=document.getElementById("optionshfilterlan");
document.getElementById("mittvallan").value=selectedlan.options[selectedlan.selectedIndex].text;}
}
Fråga:
1 -
Om man inte vill ha javaskriptet och formuläret så kan man väll hoppa (mittvallan) och gå direkt via (optionshfilterlan)?
Antar att jag inte använder formuläret och använder (optionshfilterlan)!
Koden för attt hämta ut data ur DB enligt nedan:
try
{
$selectsokningsdb = 'SELECT id, stiftelse, lan, kommun FROM sokning'';
$qshowselect = $fssqlconn->query($selectsokningsdb);
$qshowselect->setFetchMode(PDO::FETCH_ASSOC);
}
catch (PDOException $perrordb)
{
die("Kunde inte upprätta en anslutning till $dbname" . $perrordb>getMessage());
}
Fråga:
2-
Har för mig att det är i ”SELECT” satsen som man ska länka samman det jag väljer i DM och det som ska plockas ut från DB?
Om det är något oklart så fråga
Jag är nog rätt nära en lösning men behöver hjälp sista biten och ha tålamod, är rätt ny på detta med SQL
Tack på förhand//
Mvh Fredrik
Computer: Windows 10, 64-bit, Intel i9 - 10850K, Asus Rog MAXIMUS XII HERO (WI-FI), 32GB RAM, Asus RTX3070
Game control: Home Cockpit, Keyboard, Saitek Pro Flight X-56 Rhino H.O.T.A.S.