Dropdown lijst met suggestie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Harry H Arends

Harry H Arends

10/08/2017 14:50:40
Quote Anchor link
Is iemand als eens bezig geweest met een keuze lijst waarbij tijdens het type de lijst met suggesties gevuld wordt vanuit een database(Json of MYSQLi) of weet een link naar zo'n script en wil deze kennis delen.
 
PHP hulp

PHP hulp

24/11/2024 11:23:06
 
Ramon van Dongen

Ramon van Dongen

10/08/2017 14:51:32
Quote Anchor link
Wellicht heb je hier iets aan: https://jqueryui.com/autocomplete/
 
Adoptive Solution

Adoptive Solution

10/08/2017 15:25:26
Quote Anchor link
Dit soort vragen heb ik ook weleens. Ik tiep dan de trefwoorden in bij een zoekmachine.

Dan kom je iets dergelijks als dit tegen :

http://adoptive.esy.es/autocomplete/
en
http://adoptive.esy.es/dynamic_select/
 
Harry H Arends

Harry H Arends

10/08/2017 15:29:17
Quote Anchor link
Was zelf al aan het kijken naar de <datalist> tag maar hoe krijg ik deze gevuld vanuit de constructie
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
$data = array();
while($row = $result->fetch_assoc()){
    $data[] = $row;
}
 
Peter K

Peter K

10/08/2017 15:34:06
Quote Anchor link
Via jquery werkt het inderdaad allemaal heel makkelijk. Je kunt met een api een json opstellen en daarmee de data uitlezen b.v.
 
- Ariën  -
Beheerder

- Ariën -

10/08/2017 15:50:28
Quote Anchor link
Yess.... Ik heb ooit eens een suggest geschreven voor de stationsnamen.

Ik zal de code er straks eens bijpakken.
 
Peter K

Peter K

10/08/2017 15:59:24
Quote Anchor link
https://jqueryui.com/autocomplete/#remote
of
https://jqueryui.com/autocomplete/#remote-jsonp

Als je de voorbeelden volgt, moet je normaal een heel eind kunnen komen!
 
Harry H Arends

Harry H Arends

10/08/2017 17:56:37
Quote Anchor link
Nog een vraag. Is het mogelijk om de array $data, deze bevat per rij drie waarden, te sorteren op de derde waarde??
 
- Ariën  -
Beheerder

- Ariën -

10/08/2017 17:59:07
Quote Anchor link
Voor zover ik weet heeft de Autocomplete 2 soorten waardes. Een key en een value.

Toevoeging op 10/08/2017 19:14:59:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
if (isset($_GET['term']) && $_GET['term'] != '') {
    $sql = "SELECT afk AS afkorting, plaats FROM locaties
        WHERE plaats LIKE('"
.mysqli_real_escape_string($conn,$_GET['term'])."%'
        ORDER BY plaats"
;    

    $suggest_query = mysqli_query($conn,$sql);
    $searchresults = array();

    while($suggest = mysqli_fetch_assoc($suggest_query)) {
        $searchresults[] = array(    "label" => utf8_encode($suggest['plaats']),
                        "id" => $suggest['afkorting']
                    );
            }
}

echo json_encode($searchresults);
?>


Mijn code ;-).
Gewijzigd op 10/08/2017 20:21:59 door - Ariën -
 
Adoptive Solution

Adoptive Solution

10/08/2017 19:53:19
Quote Anchor link
Wat je allemaal niet tegenkomt op de webs :

https://www.w3schools.com/php/php_ajax_livesearch.asp
 
- Ariën  -
Beheerder

- Ariën -

10/08/2017 20:00:46
Quote Anchor link
Alleen jammer dat die voorbeelden op die sites soms totaal op praktijk gebasseerd is die weinig voorkomt.
Want wie zoekt nou in een XML-file. De meesten mensen gebruiken een relationele database zoals MySQL/MariaDB ;-)
 
Peter K

Peter K

10/08/2017 20:15:39
Quote Anchor link
- Ariën - op 10/08/2017 20:00:46:
Alleen jammer dat die voorbeelden op die sites soms totaal op praktijk gebasseerd is die weinig voorkomt.
Want wie zoekt nou in een XML-file. De meesten mensen gebruiken een relationele database zoals MySQL/MariaDB ;-)



Met jQuery kun je prima ook MySQL etc gebruiken... Je haalt de data op uit een PHP bestand, wat je daar dus in zet, kun je zelf bepalen.

Ik doe het met jQuery en vervolgens een MySQL verbinding in de PHP.
 
Harry H Arends

Harry H Arends

10/08/2017 20:17:55
Quote Anchor link
Hoi Ariën,

Ik heb jouw code iets aangepast, op regel 1 kreeg ik een foutmeldin(depricated)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
    $suggest_query = mysqli_query($dblink, $sql);
    $searchresults = array();

    while($suggest = mysqli_fetch_assoc($suggest_query)) {
        $searchresults[] = array(    "nf" => utf8_encode($suggest['nf']),
                        "FEI_id" => $suggest['fei_id'],
                        "current_name" => $suggest['current_name']
                    );
            }
en mijn derde veld toegevoegd
En om een datalist te maken deze code toegevoegd
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
//echo json_encode($searchresults);
?>

<datalist>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php foreach($searchresults as $option):
echo "<option> ";
 $option->result->nf;
echo "<option> ";
endforeach; ?>

echo "</datalist\n ";
?>
 
Adoptive Solution

Adoptive Solution

10/08/2017 20:18:59
Quote Anchor link
Moet alles voorgekauwd worden?

Dan gebruik je een database.
 
- Ariën  -
Beheerder

- Ariën -

10/08/2017 20:21:23
Quote Anchor link
En verder is datalist in HTML wel erg leuk, maar helaas valt Apple's Safari en Opera nog buiten de boot.

Edit: Mijn code was inderdaad nog verouderd. Ik moet de code zelf voor mijn eigen project nog eens nodig refactoren. Nu moet het wel goed zijn.
Gewijzigd op 10/08/2017 20:22:53 door - Ariën -
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.