Avatar billede compac Seniormester
05. april 2020 - 22:53 Der er 7 kommentarer

Dropdownbox udtræk af data til link til ny side

Jeg har en dropdownbox hvor jeg kan vælge en post og aktivere den valgte ved at trykke på en submit-knap. Jeg kunne tænke mig at lave det om så når jeg vælger posten i dropboxen bliver den valgte post sendt  til en ny side. Og altså springe trinet med submit-knappen over.
Et ufærdigt forslag:

<?php
  $db_link = mysqli_connect("localhost", "t", "", "company");
  mysqli_set_charset($db_link, "utf8"); // procedural style
$sek_query = "SELECT * FROM employee order by emp_name asc";
$sek_result = mysqli_query($db_link, $sek_query) or die(mysqli_error($db_link));
$sek_antal = mysqli_num_rows ($sek_result);
?>
<form method='post'>
<table>
<?php
echo '<tr><td>Tekst i input type linien</td><td><select name="fk_emp_id"><option value="0">Vælg fra menuen</option>';
while ($sek_row = mysqli_fetch_assoc ($sek_result))
{ echo '<option value=" '. $sek_row['emp_id'] .' "> '. $sek_row['emp_name'] .' </option>'; }
echo '</select></td></tr>';
echo "<tr><td><input type='submit' name='sted' value='Hent data' /></td><td></td></tr>";
echo "<a href='location.href=\'gpxviewer.php?gpstur='.$emp_id.'\''></a>";
?>
</table>
</form>
Avatar billede Xelot Juniormester
05. april 2020 - 23:24 #1
Du kan tilføje lidt JavaScript til Select. F.eks

<select name="fk_emp_id" onchange=“This.form.submit()”>

Dette sender hele formularen når du skifter valg i dropdown boksen
Avatar billede jakobdo Ekspert
06. april 2020 - 09:57 #2
Du kan lave det i ren javascript.

<select name="fk_emp_id" onchange="window.location='gpxviewer.php=this.value'"> Dog utestet, skal nok lige testes og tilpasses, men håber det giver en ide.
Avatar billede compac Seniormester
07. april 2020 - 21:53 #3
Hvordan skal det sættes ind hvis jeg laver det i ren javascript?
Avatar billede jakobdo Ekspert
08. april 2020 - 09:37 #4
Hvad har du prøvet indtil videre?
Avatar billede Xelot Juniormester
08. april 2020 - 16:11 #5
Her er et komplet eksempel ud fra det du har.

<?php
  $db_link = mysqli_connect("localhost", "t", "", "company");
  mysqli_set_charset($db_link, "utf8"); // procedural style
$sek_query = "SELECT * FROM employee order by emp_name asc";
$sek_result = mysqli_query($db_link, $sek_query) or die(mysqli_error($db_link));
$sek_antal = mysqli_num_rows ($sek_result);
?>
<form method='post'>
<table>
<?php
echo '<tr><td>Tekst i input type linien</td><td><select name="fk_emp_id" onchange=“this.form.submit()”><option value="0">Vælg fra menuen</option>';
while ($sek_row = mysqli_fetch_assoc ($sek_result))
{ echo '<option value=" '. $sek_row['emp_id'] .' "> '. $sek_row['emp_name'] .' </option>'; }
echo '</select></td></tr>';
echo "<a href='location.href=\'gpxviewer.php?gpstur='.$emp_id.'\''></a>";
?>
</table>
</form>

Dette sender din formular når du vælger en linje i dropdown. Hvad der så sker når formularen er sendt, og hvor det skal sendes hen har du ikke angivet endnu - men formularen bliver sendt ud fra ovenstående :)
Avatar billede olsensweb.dk Ekspert
08. april 2020 - 17:23 #6
>hvor det skal sendes hen har du ikke angivet endnu
den skal vel sendes til gpxviewer.php?gpstur=

forslag fra #2 omskrevet
tabeller er til tabulære data ikke til design, derfor fjernet

<?php
include ("connection.php");
$sek_query = "SELECT * FROM employee order by emp_name asc";
$sek_result = mysqli_query($db_link, $sek_query) or die(mysqli_error($db_link));
$sek_antal = mysqli_num_rows($sek_result);
?>
<form method='POST'>   
    <?php       
    echo 'Tekst i input type linien';
    echo "<select name='fk_emp_id' onchange=window.location.assign('gpxviewer.php?gpstur='+this.value)>";
    echo '<option value="0">Vælg fra menuen</option>';
    while ($sek_row = mysqli_fetch_assoc($sek_result)) {                   
        echo '<option value="'. $sek_row['emp_id'] .'"> ' . $sek_row['emp_name'] . ' </option>';                           
    }       
    echo '</select>';
    ?>   
</form>


https://developer.mozilla.org/en-US/docs/Web/API/Window/location
Avatar billede Xelot Juniormester
08. april 2020 - 21:38 #7
Hvis data skal sendes via GET, så er jeg enig i ovenstående - men compac starter sin form med at angive method='POST' så nu skal vi alle være enige om HVORDAN det skal sendes, og HVORHEN :D

HVIS det skal sendes via POST, og HVIS modtagerfilen er gpxviewer.php, så burde det indledende <form> tag se således ud:

<form method='POST' action='gpxviewer.php'>   

HVIS IKKE der skal bruges POST, men derimod GET - ja så burde form tagget se ud som dette

<form method='GET' action='gpxviewer.php'>   

Dette vil (også) give den ønskede effekt, og samme resultat som olsensweb.dk foreslår :)
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

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