Onchange selectbox
Hoe kan ik dat maken zoals google dat doet, dat er terwijl je typt resultaten die voldoen aan je opdracht worden getoond?
Omdat de tabel city-id`s en andere informatie bevat die op een andere pagina(process.php) wordt gebruikt, wil ik dat er alleen een optie kan worden geselecteerd, en niet gewoon tekst ingetypt door de user.
Hoe dit te doen??
Alvast bedankt!
Kijk eens naar Ajax.
http://www.w3schools.com/ajax/default.asp
Toevoeging op 17/01/2014 17:47:40:
http://www.w3schools.com/ajax/default.asp
Toevoeging op 17/01/2014 17:47:40:
http://www.w3schools.com/ajax/default.asp
Bedankt voor de links, maar hoe kan ik nu een koppeling maken naar mijn mysql database, en dan zoals google dat doet suggesties weergeven tijdens het typen?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" );
header("Cache-Control: no-cache, must-revalidate" );
header("Pragma: no-cache" );
header('Content-Type: application/json; charset=utf-8');
if (isset($_GET['term']) && $_GET['term'] != '') {
$sql = "SELECT naam, dit, dat, zus, zo FROM tblname
WHERE naam = '".mysqli_real_escape_string($con,$_GET['term'])."'";
$suggest_query = mysql_query($sql);
$searchresults = array();
while($suggest = mysql_fetch_assoc($suggest_query)) {
$searchresults[] = array("label" => utf8_encode($suggest['naam']), "id" => $suggest['id']);
}
}
echo json_encode($searchresults);
?>
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" );
header("Cache-Control: no-cache, must-revalidate" );
header("Pragma: no-cache" );
header('Content-Type: application/json; charset=utf-8');
if (isset($_GET['term']) && $_GET['term'] != '') {
$sql = "SELECT naam, dit, dat, zus, zo FROM tblname
WHERE naam = '".mysqli_real_escape_string($con,$_GET['term'])."'";
$suggest_query = mysql_query($sql);
$searchresults = array();
while($suggest = mysql_fetch_assoc($suggest_query)) {
$searchresults[] = array("label" => utf8_encode($suggest['naam']), "id" => $suggest['id']);
}
}
echo json_encode($searchresults);
?>
Dit script roep ik aan via het 'source' event van de $.autocomplete() en verwacht standaard een output in JSON.
Gewijzigd op 18/01/2014 10:42:53 door - Ariën -
Ik zie wel waar ik de tblname kan invullen, maar moet een wachtwoord/username/host niet worden toegevoegd?
Ik zoek naar iets zoals op jou site staat in de reisplanner: zodra je gaat typen, komen er een aantal suggesties, ik weet niet of de NS dit uit een database haalt of vanuit een api, maar het idee is hetzelfde (http://www.treinenweb.nl/page/reisplanner)
Gewijzigd op 18/01/2014 10:42:29 door Stef a
MySQL connectie moet je uiteraard ook even doen.
Gewijzigd op 18/01/2014 10:42:34 door - Ariën -
Hoe kan ik dan vanuit een form, op bijvoorbeeld index.php hier de autosuggest vandaan halen?
Toevoeging op 18/01/2014 10:47:24:
Via dit script: http://jqueryui.com/autocomplete/
maar dan in plaats van een vaste array, gebruik je:
source: 'zoeken.php'
In zoeken.php plaats je dan dat PHP-script wat ik je gaf, en die wordt vervolgens uitslutiend door de autocomplete gebruikt.
Dit gebruik ik dus als benodigde JS:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
$("#stationsearch").autocomplete({
source: "js/station_suggest.php",
minLength: 2,
select: function( event, ui ) {
window.location = '/stations/'+ui.item.id;
}
});
source: "js/station_suggest.php",
minLength: 2,
select: function( event, ui ) {
window.location = '/stations/'+ui.item.id;
}
});
Gewijzigd op 18/01/2014 10:49:52 door - Ariën -
Gewijzigd op 18/01/2014 10:50:44 door Stef a
http://jqueryui.com/autocomplete/
Dan heb je al een flinke stap gezet als het al vanaf standaard werkt.
Daarna moet je even de boel ombouwen:
- je PHP-script als 'source' aanroepen
- connectie in je PHP-script aanpassen en veldnamen
Nogmaals: Zie Dan heb je al een flinke stap gezet als het al vanaf standaard werkt.
Daarna moet je even de boel ombouwen:
- je PHP-script als 'source' aanroepen
- connectie in je PHP-script aanpassen en veldnamen
Gewijzigd op 18/01/2014 10:52:06 door - Ariën -
http://jqueryui.com/autocomplete/, met als enige aanpassing de source naar " source: "data.php" " en dan is data.php het de afhandeling zoals boven staat, met als enige aanpassingen de call naar sql
Nu zegt data.php dat de connectie met database is gelukt, maar ik krijg in de index geen resultaten.
Wat gaat er mis?
data.php
Ik heb nu op de index het script staan van : Nu zegt data.php dat de connectie met database is gelukt, maar ik krijg in de index geen resultaten.
Wat gaat er mis?
data.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
$link =mysqli_connect("host","user","pass","db_name");
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" );
header("Cache-Control: no-cache, must-revalidate" );
header("Pragma: no-cache" );
header('Content-Type: application/json; charset=utf-8');
if (isset($_GET['term']) && $_GET['term'] != '') {
$sql = "SELECT name FROM `Haltes` LIMIT 0, 30 ;
WHERE name = '".mysqli_real_escape_string($con,$_GET['term'])."'";
$suggest_query = mysql_query($sql);
$searchresults = array();
while($suggest = mysql_fetch_assoc($suggest_query)) {
$searchresults[] = array("label" => utf8_encode($suggest['name']), "id" => $suggest['id']);
}
}
echo json_encode($searchresults);
?>
$link =mysqli_connect("host","user","pass","db_name");
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" );
header("Cache-Control: no-cache, must-revalidate" );
header("Pragma: no-cache" );
header('Content-Type: application/json; charset=utf-8');
if (isset($_GET['term']) && $_GET['term'] != '') {
$sql = "SELECT name FROM `Haltes` LIMIT 0, 30 ;
WHERE name = '".mysqli_real_escape_string($con,$_GET['term'])."'";
$suggest_query = mysql_query($sql);
$searchresults = array();
while($suggest = mysql_fetch_assoc($suggest_query)) {
$searchresults[] = array("label" => utf8_encode($suggest['name']), "id" => $suggest['id']);
}
}
echo json_encode($searchresults);
?>
Gewijzigd op 18/01/2014 17:51:59 door Stef a
Bouw foutafhandeling in dan zie je wat er gebeurt.
Lijn 8 is niet nodig. De autocomplete struikelt er toch over.
@Aar, lijn 8 verwijderen lost het probleem niet op, en hoe struikelt de
Maar wat kan de fout zijn?
Als ik de data.php pagina laad, wordt daar alleen "null" geecho`t
Code (php)
1
2
3
4
2
3
4
<?php
$sql = "SELECT name FROM `Haltes` LIMIT 0, 30 ;
WHERE name = '".mysqli_real_escape_string($con,$_GET['term'])."'";
?>
$sql = "SELECT name FROM `Haltes` LIMIT 0, 30 ;
WHERE name = '".mysqli_real_escape_string($con,$_GET['term'])."'";
?>
resulteert in:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
SELECT name FROM `Haltes` LIMIT 0, 30 ; /* LET OP DE ; die beëindigd de SQL statement */
/* dus is dit geen query meer */
WHERE name = 'blablabla'
[/code]
SELECT name FROM `Haltes` LIMIT 0, 30 ; /* LET OP DE ; die beëindigd de SQL statement */
/* dus is dit geen query meer */
WHERE name = 'blablabla'
[/code]
Gewijzigd op 18/01/2014 19:18:35 door Ger van Steenderen
Ik wil een tekst form waarin terwijl je typt er een lijst van suggesties komt, zoals bijvoorbeeld in google, de reisplanner van NS en 9292 ( http://ns.nl of http://9292.nl)
Dit wil ik uit een mysql database halen of als het mogelijk is vanuit een API call naar 9292 zelf
Gewijzigd op 18/01/2014 20:00:31 door Stef a
Zie Ger's bericht eens, blijkbaar is je query gewoon stuk waardoor het niet werkt. Als je dat oplost, dan zal het mogelijk werken, maar dat kan je dan het beste eerste uitvoeren in phpMyAdmin o.i.d.....
Foutafhandeling raad ik ook zeker aan, maar je zult het dan wel handmatig via het zoeken.php moeten doen.
Gewijzigd op 18/01/2014 20:20:34 door - Ariën -
Ook dat oplossen werkt helaas niet, hoe bedoel je dat ik het uit moet voeren in phpMyadmin?