Avatar billede compac Seniormester
23. marts 2020 - 17:54 Der er 3 kommentarer og
1 løsning

Input dropdown-felt aktiveres kun med klik på mus

Jeg har en menu med et søgefelt der henter sine oplysninger i en database.
Hvis jeg sætter markøren i søgefeltet med musen begynder den omgående søgningen når jeg skriver, og Enter virker.
Hvis jeg går til søgefeltet med tabulator skriver den teksten i feltet, men søgning aktiveres ikke - heller ikke når jeg trykker på Enter.
Hvordan får jeg tastaturet til at virke når man har tabuleret til søgefeltet?


  <html>
  <head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript">
  $(document).ready(function(){
    $("#country").keyup(function(){
      var query = $(this).val();
      if (query != "") {
        $.ajax({
                url: 'query1.php',
                method: 'POST',
                data: {query:query},
                success: function(data)
                {
                  $('#results').html(data);
                  $('#results').css('display', 'block');
                    $("#country").focusout(function(){
                        $('#results').css('display', 'none');
                    });
                    $("#country").focusin(function(){
                        $('#results').css('display', 'block');
                    });
                }
        });
      } else {
            $('#results').css('display', 'none');
      }
    });
  });
</script>     
  <style>
  .dropdown {
  float: left;
  overflow: hidden;
}
.dropdown-content {
  display: none;
  position: absolute;
  background-color: #f9f9f9;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
  z-index: 1;
    font-family: arial, sans-serif;
    font-size:15px;
}

.dropdown-content a {
  float: none;
  color: black;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
  text-align: left;
}
.dropdown-content a:hover {
  background-color: #ddd;
  color: black;
}
.dropdown:hover .dropdown-content {
  display: block;
}
#results {
    text-align: left;
    border: solid 1px #777;
    display: none;
    margin: 5px auto;
    width: 400px;
    background:transparent;
    }   
</style>
</head>
<body>
    <div>
    <ul>
  <li><a href="../index.html">Forside</a></li>       
  <li><a href="http://dmi.dk">DMI</a></li>       
  <div class="dropdown">
  <input type="text" name="country" id="country">
  <div class="dropdown-content">
  <div id="results"></div>           
  </div>   
  </div>
  </ul>
  </div>
  </body>
  </html>
Avatar billede Slater Ekspert
23. marts 2020 - 18:49 #1
Nu kan vi ikke se hvad der sker i query1.php, men det burde heller ikke være relevant.
Men når jeg tester så meget jeg kan, så virker det fint - både med mus og tabuleret til feltet. Funktionen ved keyup bliver udført helt fint og variablen "query" indeholder hvad den skal.

Har du mulighed for at vise os et fungerende eksempel?
Avatar billede compac Seniormester
23. marts 2020 - 21:44 #2
Ja, det er irrlevant, men den ser sådan ud:
?php
  $connect = mysqli_connect("localhost", "root", "", "database");
  mysqli_set_charset($connect, "utf8");
  if (isset($_POST['query'])) {
    $search_query = $_POST['query'];
    $query = "SELECT * FROM vandreture where titel LIKE '$search_query%' ORDER BY titel LIMIT 10";
    $result = mysqli_query($connect, $query);
  if (mysqli_num_rows($result) > 0) {
    echo "<table border=\"1\" align=\"left\">";
    while ($country_row = mysqli_fetch_array($result)) {
    echo "<tr><td>";
    echo "<a href='gpxviewer.php'>";
    echo $country_row['titel']."</a>";
    echo "&nbsp;&nbsp;&nbsp;&nbsp;";
    echo "</td><td>";
    $turdate = date('d-M-Y',strtotime($country_row['dato']));
    echo $turdate;
    echo "</td></tr>";   
}
echo "</table>";
  }
else {
  echo "<p style='color:red'>Ingen tur på denne søgning..</p>";
}
}
?>
Jeg må ændre min beskrivelse af problemet, fordi jeg har konstateret, at ved indtastning med TAB-valg, sker der en søgning, men der kommer tilsyneladende ikke noget resultat. Holder man så musen over søgefeltet kommer resultatet af søgningen op.
Avatar billede Slater Ekspert
24. marts 2020 - 07:43 #3
Jeg vil gætte på at du simpelthen har glemt, at du har en display: none; på din .dropdown-content, som bliver sat til display: block; på .dropdown:hover .dropdown-content
- Hvilket vil sige, du specifikt har sagt at du kun vil se søgeresultaterne når musen holdes over resultatfeltet.
Avatar billede compac Seniormester
24. marts 2020 - 22:01 #4
Det var præcis det der var problemet. display:none skulle sættes til display.block.
Tak for hjælpen
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