web inspectorquote:Op zaterdag 10 november 2012 20:46 schreef KomtTijd... het volgende:
Gooi het gewoon ergens online. Zeker als het zo'n lap code is ipv een kleine testcase.
Je gaat zelf toch ook niet lopen debuggen zonder firebug...
SPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
En wát gaat er niet goed?quote:Op maandag 12 november 2012 12:17 schreef pascal08 het volgende:
..., maar zodra ik een query laat uitvoeren vanuit een ander PHP-bestand, dan gaat er iets niet goed. Het PHP-bestand stand-alone draaien werkt wel.
quote:Op maandag 12 november 2012 12:17 schreef pascal08 het volgende:
Ik heb met Bootstrap een typeahead veld gemaakt en ik heb de JS code onder aan m'n HTML pagina geschreven. Als ik dit doe werkt het wel:
[ afbeelding ]
..., maar zodra ik een query laat uitvoeren vanuit een ander PHP-bestand, dan gaat er iets niet goed. Het PHP-bestand stand-alone draaien werkt wel.
[ afbeelding ]SPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.Dit stukje klopt niet. De while-loop wordt voor elk resultaat uitgevoerd, en voor elk resultaat herdefiniëer je $array[] als de waarde uit de kolom "last_name". Als je in Chrome of Firebug het network request bekijkt (doe dit dan ook, leer de developer tools gebruiken, leer debuggen) zie je waarschijnlijk dat de PHP-pagina een JSON-object terugstuurt met daarin maar één achternaam.
1
2
3
4
5
6<?php
$mysql_query = mysql_query("SELECT * FROM `users` WHERE last_name LIKE '%$query%' ORDER BY `status` DESC LIMIT 15");
while($row = mysql_fetch_assoc($mysql_query)) {
$array[] = $row['last_name'];
}
?>
Ikzelf zou het zo doen:array_push is een functie waarmee je waardes aan een array kunt toevoegen. Deze code is niet getest overigens, maar zoiets als dit moet zeker werken.
1
2
3
4
5
6
7
8
9<?php
$array = array();
$mysql_query = mysql_query("SELECT * FROM `users` WHERE last_name LIKE '%$query%' ORDER BY `status` DESC LIMIT 15");
while($row = mysql_fetch_assoc($mysql_query)) {
array_push($array,$row['last_name']);
}
header('Content-type: application/json');
echo json_encode($return_array);
?>
Wat betreft je je JS-code, ik betwijfel of dit de juiste manier is om te bereiken wat je doet. De source van de typeahead lijkt mij een statisch element namelijk. Ik denk dat je een keydown event moet binden aan het veld waar je in typt, en in die event handler het source-attribuut moet updaten.
[ Bericht 6% gewijzigd door Merkie op 12-11-2012 12:42:43 ]2000 light years from home
Als ik 'm stand-alone via XAMPP draai, dan zie ik wel een JSON met 8 namen, elke keer wordt er toch gewoon een waarde aan de array toegevoegd?quote:Op maandag 12 november 2012 12:34 schreef Merkie het volgende:
[..]
[ code verwijderd ]
Dit stukje klopt niet. De while-loop wordt voor elk resultaat uitgevoerd, en voor elk resultaat herdefiniëer je $array[] als de waarde uit de kolom "last_name". Als je in Chrome of Firebug het network request bekijkt (doe dit dan ook, leer de developer tools gebruiken, leer debuggen) zie je waarschijnlijk dat de PHP-pagina een JSON-object terugstuurt met daarin maar één achternaam.
Ikzelf zou het zo doen:
[ code verwijderd ]
array_push is een functie waarmee je waardes aan een array kunt toevoegen. Deze code is niet getest overigens, maar zoiets als dit moet zeker werken.
Enne, voortaan inderdaad zeggen wat er niet goed gaat, lijkt me vrij essentiëel.
in de request en de reply daaropquote:Op maandag 12 november 2012 12:22 schreef pascal08 het volgende:
[..]
Ik heb 'm al in het JS-topic gepost. Waar moet ik precies naar kijken in de developer-console van Chrome?
Dit lijkt me inderdaad een goede optie, ik ga dat eens proberen.quote:Op maandag 12 november 2012 12:34 schreef Merkie het volgende:
Wat betreft je je JS-code, ik betwijfel of dit de juiste manier is om te bereiken wat je doet. De source van de typeahead lijkt mij een statisch element namelijk. Ik denk dat je een keydown event moet binden aan het veld waar je in typt, en in die event handler het source-attribuut moet updaten.
In het tabblad 'network' geeft 'ie wel een 404 fout, dus ik ben ook ergens weer verkeerd aan het linken, even checken...quote:Op maandag 12 november 2012 12:44 schreef GlowMouse het volgende:
[..]
in de request en de reply daarop
Je hebt gelijk, sorry. Dit is wat je moet doen denk ik.quote:Op maandag 12 november 2012 12:43 schreef pascal08 het volgende:
[..]
Als ik 'm stand-alone via XAMPP draai, dan zie ik wel een JSON met 8 namen, elke keer wordt er toch gewoon een waarde aan de array toegevoegd?
1 2 3 | $("#typeahead").on("keydown", function(){ $(this).typeahead({source: <hier je Ajax-functie>}); }); |
Ga ik direct proberen.quote:Op maandag 12 november 2012 12:48 schreef Merkie het volgende:
[..]
Je hebt gelijk, sorry. Dit is wat je moet doen denk ik.
[ code verwijderd ]
1 2 3 4 5 6 | $("#typeahead").on("keydown", function(){ $.ajax(bla).done(function(result) { var typeahead = $('#typeahead').typeahead(); typeahead.data('typeahead').source = result; }); }); |
F5 is genoeg, de ctrl is alleen nodig als je browsercache corrupt is.quote:
Ik moet nu steeds handmatig al m'n browsergegevens verwijderen, dan doet 'ie het wel.quote:Op maandag 12 november 2012 13:01 schreef GlowMouse het volgende:
[..]
F5 is genoeg, de ctrl is alleen nodig als je browsercache corrupt is.
Vandaar ook dat niemand in his right mind IE gebruikt als development browser.quote:Op maandag 12 november 2012 13:08 schreef Devv het volgende:
F5 werkt ook lang niet altijd. Vooral IE heeft er een handje van om bestanden vrolijk vast te houden.
In IE10 werken placeholders eindelijk wel.quote:Op maandag 12 november 2012 13:15 schreef KomtTijd... het volgende:
[..]
Vandaar ook dat niemand in his right mind IE gebruikt als development browser.
Je ontkomt er niet aan als je je site wilt testen in IE he. En je weet zelf net zo goed als ik dat een site nooit in één keer werkt in IE .quote:Op maandag 12 november 2012 13:15 schreef KomtTijd... het volgende:
[..]
Vandaar ook dat niemand in his right mind IE gebruikt als development browser.
vooralsnog moet ik bij elke browser ctrl+f5 drukken om zeker te zijn dat alles vers van het net gehaald wordt en de cache ontweken wordt...quote:Op maandag 12 november 2012 13:01 schreef GlowMouse het volgende:
[..]
F5 is genoeg, de ctrl is alleen nodig als je browsercache corrupt is.
Uiteindelijk test je in alle browsers ja, maar voor de initiële ontwikkeling IE gebruiken, dan kom je wel met zulke kromme producten...quote:Op maandag 12 november 2012 13:24 schreef Merkie het volgende:
[..]
Je ontkomt er niet aan als je je site wilt testen in IE he. En je weet zelf net zo goed als ik dat een site nooit in één keer werkt in IE .
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |