Ik ga dit zo goed mogelijk verwoorden. Ik ben nu bezig met het maken van een domein checker, die is inmiddels werkende. Maar ik wil er nog een functie bij plaatsen namelijk dat als je bijv. (mediamarkt.) intypt dat je automatisch een rij krijgt zodra je een PUNT neerzet met domein namen die in de array staan. Dus bijvoorbeeld ik type in 'mediamarkt.' dan zie je 'mediamarkt.com, mediamarkt.nl, mediamarkt.net' en zodra ik 'mediamarkt.n' intype dat je alleen nog de domein namen ziet met de .nl en .net aan het einde. Ik hoop wat informatie hierover te krijgen en alvast bedankt.
Meestal worden autocompletes getriggered door een bepaalde hoeveelheid tekst in te typen, of na elke toetsaanslag. In jouw geval dient deze pas te gaan zoeken als je wat tekst plus een punt hebt ingetypt. Je zult dan dus elke toetsaanslag moeten controleren of aan deze conditie is voldaan (bijvoorbeeld met een reguliere expressie waarmee je een tekstpatroon kunt herkennen), en dan pas gaan zoeken naar mogelijke resultaten.
JQuery UI zijn autocomplete kun in of uitschakelen. Je krijgt dan zoiets:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>autocomplete demo</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.12.4.js"></script>
<script src="//code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
</head>
<body>
<label for="autocomplete">probeer google. of phphulp. :</label>
<input id="autocomplete">
</body>
<script>
$('#autocomplete').autocomplete({
// verander source naar iets als "search.php" om de data van de server af te halen, zie de documentatie op https://jqueryui.com/autocomplete/#remote
source: [ "google.com", "google.nl", "phphulp.nl" ],
// disable de autocomplete in eerste instantie
disabled: true,
// minimaal drie karakters inclusief de punt
minLength: 3
})
$('#autocomplete').keyup(function(e) {
// de tot dusver ingetypte tekst
var searchtext = $(this).val();
// als er een punt (.) aangetroffen wordt in de tekst
if (searchtext.indexOf('.') > -1)
{
// enable de autocomplete
$(this).autocomplete('enable');
// zoek vervolgens direct op de tekst die we hebben tot dusver
$(this).autocomplete('search', searchtext);
} else {
// indien er geen punt meer in de tekst aangetroffen wordt disable dan de autocomplete
$(this).autocomplete('disable');
}
});
</script>
</html>
Je zal waarschijnlijk de data vanaf de server willen laden met AJAX. Hiervoor moet je dan de optie "source" een URI geven in plaats van een array. Bijvoorbeeld source: search.php. search.php moet dan een json array teruggeven met gevonden resultaten.
search.php wordt aangeroepen met een $_GET variabele 'term'. Bij wijze van een testje:
Heel erg bedankt alleen ik krijg een melding - Notice: Undefined index: term in D:\school\logica\htdocs\script\index.php on line 2
["com","nl","org"] - . Wat moet ik doen om dat te kunnen fixen?
Ook met een vaste array doet hij het niet en dat is raar want opzich zou ik het met een array kunnen doen want ik heb maar een paar domeinen nodig. Maar het enige dat hij correct is het gene wat bij het stukje code: source: [ "google.com", "google.nl", "phphulp.nl" ], staat. Hoe krijg ik het voor elkaar dat hij alleen de .com/.nl/.net bijv krijg als ik iets anders intype dan wat er in de source staat.