Textbox met dropdown onchange.

Status
Niet open voor verdere reacties.
Maar, je hebt het over een console.. Ik kan de pagina zelf sturen, dan zie je net als ik loading failed staan. In de console van chrome staat helemaal niks xD
Dus wss snap ik je helemaal verkeerd.. en anders heb ik gewoon 0,0 output..
 
test.php
PHP:
<!doctype html>
<html lang="nl">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title></title>
    <meta name="description" content="">
    <meta name="viewport" content="width=device-width">
    <link href="//cdnjs.cloudflare.com/ajax/libs/select2/3.5.0/select2.min.css" rel="stylesheet"/>
</head>
<body>
    <input type="hidden" id="search" value="" />
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script src="//cdnjs.cloudflare.com/ajax/libs/select2/3.5.0/select2.min.js"></script>
    <script>
    $(document).ready(function() {
        $("#search").select2({
            placeholder: "Zoeken",
            minimumInputLength: 1,
            ajax: { // instead of writing the function to execute the request we use Select2's convenient helper
                url: "myPage.php",
                dataType: 'json',
                data: function (term, page) {
                    return {
                        q: term, // search term
                        page_limit: 10 // Kun je later gebruiken
                    };
                },
                results: function (data, page) { // parse the results into the format expected by Select2.
                    console.log(data);
                }
            }
        });
    });
    </script>
</body>
</html>
myPage.php
PHP:
{"succes": true}

Resultaat:
attachment.php
 

Bijlagen

  • Screen Shot 2014-10-07 at 10.25.35.png
    Screen Shot 2014-10-07 at 10.25.35.png
    31,3 KB · Weergaven: 26
Erg bedankt voor het uitleggen wat je bedoelde :)

In dat geval krijg ik deze error

Failed to load resource: the server responded with a status of 404 (Not Found)

PHP:
<?php 
	{"succes": true};
?>

Dat is de code
[js]<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title></title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width">
<link href="select2-3.5.1/select2.css" rel="stylesheet"/>
<link rel="STYLESHEET" href="GRIP.css" type="text/css">
</head>
<input type="hidden" id="search" value="" />
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="select2-3.5.1/select2.js"></script>
<script>
$(document).ready(function() {
$("#search").select2({
placeholder: "Search for site id",
minimumInputLength: 1,
ajax: { // instead of writing the function to execute the request we use Select2's convenient helper
url: "getSiteNames.php",
dataType: 'json',
data: function (term, page) {
return {
q: term, // search term
page_limit: 10 // Kun je later gebruiken
};
},
results: function (data, page) { // parse the results into the format expected by Select2.
console.log(data);
}
}
});
});
</script>[/js]

De sluit tags uiteraard ook maar das hier niet van toepassing omdat er nog meer code in het bestand staat.
 
Laten we het stap voor stap in elkaar proberen te zetten en niet meteen in de praktijk proberen te gebruiken ;)

De code uit mijn vorige bericht werkt, laat dat ons uitgangspunt zijn.

Nu we een reactie van het PHP bestand terugkrijgen kunnen we het HTML-bestand eerst met rust laten.

Om te testen of de zoekopdracht doorkomt maken we de inhoud van myPage.php dit:
PHP:
{"keyword" : "<?= $_GET['q'] ?>"}
Je zult nu in de console dezelfde waarde terug moeten vinden als hetgeen je in het invoerveld hebt geplaatst.

Als dat zo is kun je binnen het PHP-bestand de verbinding met de database gaan regelen zodat je het zoekwoord kunt gebruiken in een query.
 
Laatst bewerkt:
Hoe heb je het precies in het php bestand staan?
Echt alleen dat, tussen php tags, gewoon met een html body etc?
 
Nee, het is die ene regel exact zoals hij daar staat. Geen PHP-tags of verdere output.
 
Dan weet ik ook direct waar mijn fout eerste instantie zat. Want het geen wat ik heb geleerd is dat er altijd tags moeten staan..
Bedankt tot zo ver, hij blijft nu hangen op searching en in de console krijg ik:

Object {keyword: "g"} GRIPHome.php:100
Uncaught TypeError: Cannot read property 'hasError' of undefined.

Wanneer ik een eigen uery neerzet, hoe moet ik dat dan in die file doen?
 
Leer dat meteen maar af dan ;)

Het is belangrijk van de output uit te gaan, in feite gaan we een JSON-bestand teruggeven zodat Select2 daar wat mee kan.

Gezien je postings op het forum hier ga ik er vanuit dat je wel weet hoe je met MySQL werkt.

Afhankelijk van wat je gebruikt kun je het in je query gebruiken:
PHP:
$mysqli->query('SELECT * FROM tabel WHERE kolom LIKE "'. $_GET['q'] .'%"');
Of via een prepared statement
PHP:
$stmt = $mysqli->prepare('SELECT * FROM tabel WHERE kolom LIKE "?%"');
$stmt->bind_param('s', $_GET['q']);

Overigens kun je nu ook rechtstreeks het PHP-bestand benaderen met een keyword, dat maakt het testen van output makkelijker ;) (myPage.php?q=test)
 
Enige waar ik mee zit is dat %.. Hij zegt daarmee incorrect column name..

PHP:
$sql = 'SELECT distinct name FROM db WHERE name LIKE "'. $_GET['q'] .'%"';
	$stmt = sqlsrv_query( $link, $sql);
	
	if( $stmt === false )
	{
		 die( print_r( sqlsrv_errors(), true));
	}
 
Ah, je gebruikt MSSQL (niet onbelangrijk om te melden ;))

De syntax van MSSQL queries weet ik niet, het zal niet veel verschillen maar wellicht kleine nuances.
Klopt de naam van de kolom wel? Aangezien dat de feitelijke melding is :)
 
Klopt had ik meteen moeten melden..
Ja de colum name klopt. Ik ben aan het opzoeken wat er anders zou moeten zijn maar kan het (nog) niet vinden..
Maar ik blijf doorzoeken ^^ in iedergeval bedankt voor je hulp zover :)

Code:
Array ( [0] => Array ( [0] => 42S22 [SQLSTATE] => 42S22 [1] => 207 [code => 207 [2] => [Microsoft][SQL Server Native Client 11.0][SQL Server]Invalid column name '%'. [message] => [Microsoft][SQL Server Native Client 11.0][SQL Server]Invalid column name '%'. ) )

das is de gehele fout.
 
Laatst bewerkt:
De syntax komt aardig overeen, wat ik alleen in de documentatie zie is dat ze enkele quotes gebruiken.

Probeer dat dus eens.
 
Code:
Notice: Undefined index: q in D:\xampp\htdocs\griphome\GRIP\getSiteNames.php on line 22
Array ( [0] => Array ( [0] => 42000 [SQLSTATE] => 42000 [1] => 102 [code => 102 [2] => [Microsoft][SQL Server Native Client 11.0][SQL Server]Incorrect syntax near '%'. [message] => [Microsoft][SQL Server Native Client 11.0][SQL Server]Incorrect syntax near '%'. ) )

PHP:
$sql = "SELECT distinct name FROM db where name is not null and name LIKE '". $_GET["q"] ."'%";
 
Probeer dit eens:
PHP:
$sql = "SELECT DISTINCT name FROM db WHERE name IS NOT NULL AND name LIKE '". $_GET["q"] ."%'";
Het percentage teken hoort binnen de quotes van de LIKE :)
 
Dan krijg ik :

Code:
Notice: Undefined index: q in D:\xampp\htdocs\griphome\GRIP\getSiteNames.php on line 22

{"keyword" : "
Notice: Undefined index: q in D:\xampp\htdocs\griphome\GRIP\getSiteNames.php on line 36
"}

Lijn 22 en 36:
PHP:
$sql = "SELECT DISTINCT name FROM db WHERE name IS NOT NULL AND name LIKE '". $_GET["q"] ."%'";
{"keyword" : "<?= $_GET['q'] ?>"}
 
Geef je wel een parameter aan de pagina mee? Dus myPage.php?q=test
 
Waar moet ik dit precies neerzetten?.. ik dacht dat dat puur om te testen was -.-
 
Je hebt een PHP-bestand gemaakt waar we de zoekterm vanaf Select2 naartoe sturen nietwaar?

Dat is als het goed is het bestand waarin je nu de query hebt gezet. Als je aan de URL ?q=test toevoegt dan zal de melding moeten verdwijnen.
 
Wordt er iets met $_GET gedaan?

Het bestand heet "getNames.php" als ik het bekijk in de foutmelding, dan moet je hem dan dus aanroepen met "getNames.php?q=test".

Hoe ziet het totale script er uit?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan