Hoe krijg ik alleen de postcode Inc het veld terug, na autocomplete

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jan te Pas

Jan te Pas

10/05/2018 12:05:21
Quote Anchor link
Ik zit al even te stoeien met een schoonheidsprobleem. Ik wil in een veld de postcode invoeren. De gebruiker kan een postcode invoeren. Vanuit de database worden max 15 postcodes getoond, met hoofdstad. Alleen wil ik bij een keuze de postcode gebruiken uit de autocomplete. En dat lukt mij niet. Wie kan mij op weg helpen?

Ik heb in een formulier een veld postcode. Op dit veld wordt een autocomplete toegepast. Ik laat in de lijst die verschijnt de postcode met plaats zien. Dat werkt prima bij alleen de postcode tonen, maar niet als ik een samenstelling maak van postcode met hoofdstad.

De gebruikte input:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<input type="text" name="postcode" minlength="4" maxlength="4" onkeypress="return numere(event)"  placeholder="xxxx" required title="(Vul de postcode in)" class='auto' >


Ik gebruik de functie onkeypress om alleen cijfers te accepteren.

Als ik nu een lijst toon met postcode en hoofdstad en klik op een keuze, dan wordt het veld gevuld met de gekozen waarden. Dus postcode met de hoofdstad.

Echter wil ik bij een keuze alleen de 4 cijfers overnemen van een postcode.

Dit is de code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<script>
$(function() {            
    //autocomplete
    $(".auto").autocomplete({
        source: "search.php",
        minLength: 1
    });                
});
</script>


De php, waarin de query gemaakt wordt ziet er als volgt uit:
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
18
19
20
21
22
23
24
<?php
require('includes/config.php');
if(!$user->is_logged_in()){ header('Location: login.php'); }
define('DB_SERVER', 'localhost');
define('DB_USER', '******');
define('DB_PASSWORD', '******');
define('DB_NAME', '******');
if (isset($_GET['term'])){
    $return_arr = array();
    try {
        $conn = new PDO("mysql:host=".DB_SERVER.";port=8889;dbname=".DB_NAME, DB_USER, DB_PASSWORD);
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $stmt = $conn->prepare('SELECT * FROM 4postcode WHERE postcode LIKE :term LIMIT 15');
        $stmt->execute(array('term' => $_GET['term'].'%'));
        while ($row = $stmt->fetch()){
            $return_arr[] =  $row["postcode"].'-'.$row["hoofdstad"];
        }
    }
catch(PDOException $e) {
        echo 'ERROR: ' . $e->getMessage();
    }

    /* Toss back results as json encoded array. */
    echo json_encode($return_arr);
}

?>


Als ik:
“$return_arr[] = $row["postcode"].'-'.$row["hoofdstad"];”
Vervang door:
“$return_arr[] = $row["postcode"];”
Dan krijg ik alleen de postcodes te zien en is de invoer prima.

Waar ik mee worstel:
Maar ik wil de lijst met keuzes tonen met hoofdstad, maar bij het kiezen alleen de postcode gebruiken.

Ik heb een functie toegevoegd bij onchange in het veld dat alleen de eerste 4 karakters overgenomen worden, maar dat werkt niet.

Weet iemand de oplossing?

Dank
 
PHP hulp

PHP hulp

25/04/2024 07:02:43
 
Rob Doemaarwat

Rob Doemaarwat

10/05/2018 12:40:48
Quote Anchor link
Wat je nu bij je onchange geprobeerd hebt kun je waarschijnlijk wel in http://api.jqueryui.com/autocomplete/#event-select doen.
 
Adoptive Solution

Adoptive Solution

10/05/2018 15:51:36
Quote Anchor link
Gebaseerd op dit autocomplete voorbeeld :

http://adoptive.esy.es/autocomplete/

heb ik voor de gelegenheid een postcode database opgehaald en het zoeken en tonen wat aangepast :

https://www.postcode.store/wp-content/downloads/demobestand.zip
http://adoptive.esy.es/postcode/

Het meeste wordt gedaan door een javascript, waarbij eerst een lijst wordt getoond en als je iets kiest, de postcode in het zoekveld wordt geplaatst. In tegenstelling tot autocomplete voorbeeld, waarbij het gevonden resultaat in een apart veld komt.

Hier het javascript. De veldnamen zijn niet aangepast.

http://adoptive.esy.es/postcode/js/script.js
 
Jan te Pas

Jan te Pas

10/05/2018 17:02:28
Quote Anchor link
Dit is het. Dank je wel! Hier kan ik nog eea in aanpassen. Dank!
Gewijzigd op 10/05/2018 17:43:57 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.