Dropdown Ergebnis verlinken

Sharkoon

Mitglied
Hallo zusammen,


ich habe ein Problem womit ich einfach nicht weiter komme..
Ich möchte, dass die Datenbank mit einem Suchfeld durchsucht wird und die Ergebnisse in einer Dropdown erscheinen.
Dies funktioniert auch sehr gut -> nutze select2 dafür.

Ergebnisse werden normal angezeigt wie gewollt, aber ich möchte gerne dazu, wenn man ein Treffer hat, dass sobald man draufklickt sich das Profil öffnet.
Profillink weiß ich auch wie man diesen erzeugt, aber ich weiß einfach nicht wie ich die ausgebe verlinken kann, damit wenn man auf das Ergebnis drückt sich die Seite öffnet...

habe es schon mit der
HTML:
<option>onClick="windows.location"</option>
versucht, aber leider ohne Erfolgt.
Hoffe mir kann jemand Helfen ;)(y)
 
Genau ich gebe wie hier das Wort Hans ein und bekomme alle Werte die mit Hans zusammen stehen mit einer foreach ausgegeben, jetzt will ich z.b auf den ersten Beitrag klicken und es öffnet sich das "Profil" als neue Seite. Nur weiß ich einfach nicht, wie ich das mit dem Verlinken machen soll.
 

Anhänge

  • Bild_2022-01-20_184431.png
    Bild_2022-01-20_184431.png
    9,9 KB · Aufrufe: 4
Mit change event fragst du den Inhalt des ausgesuchten options Feld ab und dann öffnest du die Seite wo du hinwillst.
Ich suche mal gerade was .Weil erklären kann ich nicht
 
Probier es mal so
Link zur Lösung

Hoffe, das ich es richtig verstanden habe.
Den Inhalt der Option holst du ja aus der Datenbank , ansonsten sollte der Rest ja passen.

Falls nicht, poste mal deinen jetzigen Code
 
Zuletzt bearbeitet:
Leider funktioniert das so nicht :( hier einmal der Code

PHP:
<?php
foreach($result_belege as $belege_result) // normale ausgabe der Datenbank funktioniert auch.
{
    echo '<option class="form-control form-control-sm" value="'.$belege_result['id'].'>">'.$belege_result['von'].' '.$belege_result['datum'].' '.$belege_result['erledigen'].'</option>';
}
?>
hier der <script> teil selbst
Javascript:
<script>
    $('#belege-suche').select2({
    placeholder: "Belege durchsuchen...",
    allowClear: true
    });
</script>

Also wollte wie oben auf dem Bild zusehen ist es so machen: Ich suche nach dem Wort "Hans" die Datenbank gibt mir alles aus, was ein Hans als Wort in sich hat, funktioniert super und wie gewollt.

Jetzt habe ich für jeden Beleg eine Profilpage normal über profil_beleg.php?id=id vom eintrag, seite wird geöffnet und über GET alle Daten entnommen die angezeigt werden sollen erscheinen auch.

Nur bekomme ich es nicht hin, dass wenn ein Ergebnis kommt wie auf dem Bild zusehen, dass ich einfach aus der Auswahl klicken kann und sich diese Seite öffnet. Hoffe konnte es gut erklären :D
 
Ich muss ehrlich sagen, dass ich jetzt noch mehr verwirrt bin.
Ich habe mehrere Wochen Pause gemacht und glaube, ich bin verdummt.
Ich gebe das Thema jetzt mal weiter und rufe mal @Sempervivum ob er Zeit hat usw..
Ich bin irgendwie gerade nicht in Stande mich da weiter drauf einzugehen sorry.
 
@basti1012 Du hast nicht berücksichtigt, dass der Fragesteller schrieb, dass er Select2 verwendet.
@Sharkoon Ähnlich wie Basti es schon gemacht hatte, musst Du irgend wie den Profillink in jedem Option-Tag hinterlegen. Normaler Weise in einem data-Attribut, da value ja offenbar schon durch die ID belegt ist. Also das option-Tag müsste dann so aussehen:
Code:
    echo '<option class="form-control form-control-sm data-profillink=".$dein_profillink." value="'.$belege_result['id'].'>">'.$belege_result['von'].' '.$belege_result['datum'].' '.$belege_result['erledigen'].'</option>'
Die Frage ist nur, ob das erhalten bleibt wenn Select2 das bearbeitet.
 
PS: Ich habe jetzt in die Doku hinein gesehen:
The Select2 data format | Select2 - The jQuery replacement for select boxes
und muss mich korrigieren. Dort steht:
Additional parameters passed in with data objects will be included on the data objects that Select2 exposes.
D. h. Du kannst den Profillink einfach hinzu fügen:
Code:
{
  "results": [
    {
      "id": 1,
      "text": "Option 1",
      "profillink": "profillink-1.html"
    },
    {
      "id": 2,
      "text": "Option 2",
      "profillink": "profillink-2.html"    }
  ],
  "pagination": {
    "more": true
  }
}
Weiter steht dort bei den Events:
e.params.data will return an object containing the selection properties. Any additional data for the selection that was provided in the data source will be included in this object as well.
D. h. unter e.param.data.profillink findest Du den Link wieder und kannst ihn mit location.href aufrufen.
Und wie Du auf das Event für das Auswählen einer Option reagierst kannst Du hier nachlesen:
Events | Select2 - The jQuery replacement for select boxes
 
Zurück