| | | | |
| |||||||
| Datenbanken SQL und Co |
|
| | LinkBack | Themen-Optionen | Thema bewerten |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Moderator Registriert seit: 11.05.2008
Beiträge: 6.266
![]() ![]() ![]() ![]() ![]() ![]() ![]() | Autosuggest, Autocomplete ... z.B. http://code.drewwilson.com/entry/aut...-jquery-plugin http://docs.jquery.com/UI/Autocomplete
__________________ "Nuschel ich?" - "Was?" |
| | |
| | ||
| Moderator Registriert seit: 11.05.2008
Beiträge: 6.266
![]() ![]() ![]() ![]() ![]() ![]() ![]() | Zitat:
Siehe: http://docs.jquery.com/UI/Autocomplete#event-select Hier mal ein Codeschnipsel von mir, vielleicht hilft es ja: Code: window.gf.autocomplete = {
init: function(dialogJ) {
// find all input elements with "autocomplete" css class
var autocompletesJ = $('input.autocomplete', dialogJ);
autocompletesJ.each(function(i, node) {
var autocompleteJ = $(this);
// parse our payload data in virtual attribute "gf_autocomplete"
// f.e. gf_autocomplete = {url:'example/test.php',hiddenJ:'input#test_id'}
var payload = $.parseJSON(autocompleteJ.attr('gf_autocomplete'));
autocompleteJ.removeAttr('gf_autocomplete');
autocompleteJ.bind('keyup blur', function() {
// if the user is clearing the input field, we want to clear
// the hidden-id element as well, which makes the behaviour more intuitive
if ($(this).val().length == 0) {
$(payload.hiddenJ).val('');
}
});
autocompleteJ.autocomplete({
// add autocomplete functionality
source: function(event, add) {
// use AJAX as resource
$.getJSON(
payload.url,
event,
function(json) {
// gather result
var suggestions = [];
$.each(json.response, function (i, object) {
// required JSON response is
// f.e. {response:[{label:'example',id:1},{label:'test',id:2}]}
suggestions.push({
label: object.label,
id: object.id,
object: object
});
});
add(suggestions, false);
}
);
},
// when selecting an autocomplete suggestion, the label
// is not relevant, use id instead and write it back to the element
// provided as selector in payload.hiddenJ
select: function(event, ui) {
var hiddenJ = $(payload.hiddenJ, dialogJ);
hiddenJ.val(ui.item.object.id);
return true;
}
})
});
}
};
Code: {"version":"1.0","success":true,"command":"autocomplete","response":{"61":{"id":61,"team_id":null,"name":"*** BI Test Accounts","type":null,"color":null,"edited":"2011-01-19 18:37:43","created":"2011-01-19 18:37:43","label":"*** BI Test Accounts"}},"timestamp":"2011-01-20T10:20:50+01:00"}
__________________ "Nuschel ich?" - "Was?" | |
| | |
| | |
| Erfahrener Benutzer Registriert seit: 15.10.2005
Beiträge: 231
![]() | Um mein Problem genauer zu spezifizieren: nun will ich es so machen, dass man einen namen eingeben kann und dass der vervollständigt wird. und zwar jeweils nur 1 namen. wenn man dann enter drückt, soll der name in einer liste rechts daneben aufgenommen werden. Ich habe einen Code gefunden, mit dem ich soweit recht zufrieden bin. Den habe ich mal hier ausgestellt: http://janeway.quicktunnels.net/autosuggest/ leider blicke ich noch nicht ganz durch und bräuchte Hinweise: - wo wird der eingabetext verglichen, so dass ich die funktion dahingehend abändern kann, dass gross- und kleinschreibung egal wird - wie füge ich meine IDs (jede person in der datenbank hat eine ID) an die auswählbaren items? ich brauche nur einen rückgabewert: die numerische position des items im eingabearray (da kann ich dann die ID auslesen, den namen und evtl noch das land) Und noch eine kleine sache: was ist eine gescheite lösung um die tabelle der ausgewählten personen in der datenbank nach den änderungen im frontend abzugleichen? soll ich die DB tabelle leeren und neu füllen mit den IDs die ich ausgewählt habe? danke
__________________ mobilis in mobili |
| | |
| | |
| Erfahrener Benutzer | Ehrlich gesagt blicke ich bei deiner Problembeschreibung überhaupt kein bisschen durch. Ich habe mir selber ohne JQuery als Übung (war ne Praktikumsaufgabe) so ein autocomplete anhand von Postleitzahlen und dazugehörigen Städten programmiert. Die Vorgehensweise ist da ja die selbe. Ich gebe eine 0 ein und die Liste erstellt sich mit allen PLZ in der DB die mit 0 anfangen, dann gehts immer so weiter. Das autocomplete ändert sich je mehr Zahlen eingegeben werden und dazu werden auch die Städte angezeigt. Wenn ich dann auf einen Datensatz klicke werden Formularfelder ausgefüllt. Wenn du den Namen in der Liste haben willst dann musst eben mittels DOM die Liste entsprechend manipulieren. Hier mal mein kleiner bescheidener Code, wie gesagt an meiner Aufgabe eben spezifisch. Code: function createXMLHttpRequest () {
var req;
if ( window.XMLHttpRequest ) {
try {
req = new XMLHttpRequest();
} catch ( e ) {
req = false;
}
} else if ( window.ActiveXObject ) {
try {
req = new ActiveXObject( "Microsoft.XMLHTTP" );
} catch ( e ) {
req = false;
}
}
return req;
}
Code: function setRequestForCitySearch () {
var ajaxRequest = new createXMLHttpRequest();
var zipValue = document.getElementById( "zipCode" ).value;
var requestString = "?zip=" + zipValue;
//document.getElementById( "testShow" ).lastChild.nodeValue = zipValue;
ajaxRequest.onreadystatechange = function () {
if ( this.readyState == 4 && this.status == 200 ) {
if ( zipValue.length > 0 ) {
document.getElementById( "zipAndCity" ).style.display = "block";
document.getElementById( "zipAndCity" ).innerHTML = ajaxRequest.responseText;
} else {
document.getElementById( "zipAndCity" ).style.display = "none";
document.getElementById( "cityName" ).value = '';
}
}
}
ajaxRequest.open( "GET", "LIT_ReadCityData_Class.php" + requestString );
ajaxRequest.send( null );
}
/*
*
* funktion wählt datensatz aus den funden aus
*
*/
var selectCity = function ( pEvent ) {
pEvent = pEvent || window.event;
var target = pEvent.target || pEvent.srcElement;
var zipCity = target.lastChild.nodeValue.split( " " )[0];
var city = target.lastChild.nodeValue.substring( zipCity.length, target.lastChild.nodeValue.length );
document.getElementById( "zipCode" ).value = zipCity;
document.getElementById( "cityName" ).value = city;
document.getElementById( "zipAndCity" ).style.display = "none";
}
Code: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de">
<head>
<script type="text/javascript" src="ajax_req.js"></script>
<script type="text/javascript" src="city_search.js"></script>
<script type="text/javascript">
window.onload = function () {
document.getElementById( "zipCode" ).onkeyup = setRequestForCitySearch;
document.getElementById( "zipAndCity" ).onclick = selectCity;
}
</script>
</head>
<body>
<div>
<input id="zipCode" type="text" name="zip" value="" />
<div id="zipAndCity" style="display: none; width: 200px; border: 1px solid #000000;"></div>
<br />
<input id="cityName" type="text" name="city" value="" />
<br />
<input id="loadButton" type="button" name="send" value="Sendens" />
</div>
<div id="testShow" style="display: none; width: 200px; border: 1px solid #000000;">
</div>
</body>
</html>
PHP-Code: Wenn Fragen hast dann frag. Gruß Litter
__________________ Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir. http://www.lit-web.de |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [Erledigt] Vorgehensweise Kontrolle von Abhängigkeiten | coola | PHP Einsteiger | 9 | 21.01.2011 11:20 |
| [Erledigt] Problem mit number_format wenn zahl über 1000 geht | litterauspirna | PHP Tipps 2008 | 12 | 20.11.2008 20:26 |
| MySQL/PHP: Löschen von Datensätzen | ajo_silent | PHP Tipps 2005-2 | 8 | 03.08.2005 17:00 |