
- 1
- 2

Autocomplete Frage
HTML
Jquery
autocomplete.php
Zurzeit wird das autocomplete nur für das Feld Artikel (id=article) angezeigt. Nun möchte ich es so machen, dass wenn ich einen Artikel eingebe gleichzeitig auch die Anzahal (id=unit) und der Preis (id=unit_price) vorgeschlagen wird. Wie könnte ich das am besten machen?
Spoiler
![]()
Quellcode
1 2 3 <input type="text" id="article" /> <select id="unit"></select> <input type="text" id="unit_price" />
Jquery
Spoiler
![]()
Javascript-Quelltext
1 2 3 4 5 6 $("#article").autocomplete("inc/autocomplete.php", { width: 150, matchContains: true, selectFirst: false, autoFill: true });
autocomplete.php
Spoiler
![]()
PHP-Quelltext
1 2 3 4 5 6 7 8 9 10 11 12<?php include ('mysql.php'); $q = strtolower($_GET["q"]); if (!$q) return; $sql = "SELECT name FROM goods WHERE name LIKE '%$q%'"; $rsd = mysql_query($sql); while($rs = mysql_fetch_array($rsd)) { $cname = $rs['name']; echo "$cname\n"; } ?>
Zurzeit wird das autocomplete nur für das Feld Artikel (id=article) angezeigt. Nun möchte ich es so machen, dass wenn ich einen Artikel eingebe gleichzeitig auch die Anzahal (id=unit) und der Preis (id=unit_price) vorgeschlagen wird. Wie könnte ich das am besten machen?
Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.
dann musst du deine autocomplete.php ändern dass du je nach action was anderes ausgibst, und bei der jquery autocomplete funktion müsstest du eine action an die autocomplete.php übergeben
Mein kleines Projekt
-Cruel Online-
-Cruel Online-
Mhhh das Script von Autocomplete ist doch etwas zu komplex für mich... finde die Stelle nicht wo ich die action einsetzen muss
http://bassistance.de/jquery-plugins/jqu…n-autocomplete/
von hier hab ich den Code
Gibt es nicht noch eine andere Möglichkeit ohne das Script zu manipulieren?
http://bassistance.de/jquery-plugins/jqu…n-autocomplete/
von hier hab ich den Code
Gibt es nicht noch eine andere Möglichkeit ohne das Script zu manipulieren?
Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Josephine« (10. August 2011, 14:53)
das ausprobiert?
und dann mal im autocomplete.php einen print_r($_GET) machen
|
|
Javascript-Quelltext |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
$("#article").autocomplete("inc/autocomplete.php?action=article", { width: 150, matchContains: true, selectFirst: false, autoFill: true }); $("#wasanderes").autocomplete("inc/autocomplete.php?action=wasanderes", { width: 150, matchContains: true, selectFirst: false, autoFill: true }); $("#foo").autocomplete("inc/autocomplete.php?action=foo", { width: 150, matchContains: true, selectFirst: false, autoFill: true }); |
und dann mal im autocomplete.php einen print_r($_GET) machen
Mein kleines Projekt
-Cruel Online-
-Cruel Online-

Wenn ich das so mit der Action mache, dann schlägt er mir das ja nur vor wenn ich in das Feld klicke bzw. anfange etwas darin zu schreiben, ich wollte aber das wenn ich zb. wie im Screnn Milch eingegebn habe er mir automatisch die beiden anderne Felder füllt. Zum Beispiel Milch ist in der Datenbank mit 1,2,4,5,7 drin mit den Preisen 0,55 1,22 3,22 usw. und mir dann jeweils das erste vorschlägt als dropdown.
Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.
warum nimmst du denn nen altes plugin wenn auf der Seite sogar steht das es veraltet ist und nicht mehr weiterentwickelt wird ...
ich würde mit überlegen auf jqueryUI umzusatteln guck dir zb mal die demo hier an das in etwa sowas was du suchst http://jqueryui.com/demos/autocomplete/#custom-data
-LA
ich würde mit überlegen auf jqueryUI umzusatteln guck dir zb mal die demo hier an das in etwa sowas was du suchst http://jqueryui.com/demos/autocomplete/#custom-data
-LA
Ich hab jetzt mal das autocomplete von jqery ui eingebaut, aber irgendwie hab ich noch was falsch gemacht, denn er zeigt mir generell immer alle Einträge aus der Datenbanspalte an. Normerweise sollte er doch nur die Anzeigen, die bis zur derzeitigen Eingabe in Frage kommen könnten.
Mein JS Code:
Mein JS Code:
|
|
Javascript-Quelltext |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
//attach autocomplete $("#article").autocomplete({ minLength: 3, //define callback to format results source: function(req, add){ //pass request to server $.getJSON("inc/ajaxload/article.php?callback=?", req, function(data) { //create array for response objects var suggestions = []; //process response $.each(data, function(i, val){ suggestions.push(val.name); }); //pass array to callback add(suggestions); }); } }); |
Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.
|
|
PHP-Quelltext |
1 2 3 4 5 6 7 8 9 10 |
// Ich habs jetzt so
$query = mysql_query("SELECT * FROM goods WHERE name REGEXP '^$param'");
// und so
$query = mysql_query("SELECT name FROM goods WHERE name LIKE '^$param'");
// und so
$query = mysql_query("SELECT name FROM goods WHERE name REGEXP '^$param'");
// probiert. Es gibt nach Eingabe die komplette Spalte namen aus.
|
Vollständigkeithalber die ganz php Datei:
Spoiler
![]()
PHP-Quelltext
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18<?php include ('../mysql.php'); //query the database $query = mysql_query("SELECT * FROM goods WHERE name REGEXP '^$param'"); //build array of results for ($x = 0, $numrows = mysql_num_rows($query); $x < $numrows; $x++) { $row = mysql_fetch_assoc($query); $friends[$x] = array("name" => $row["name"]); } //echo JSON to page $response = $_GET["callback"] . "(" . json_encode($friends) . ")"; echo $response; ?>
Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.
wo kommt $param denn her das wird doch nen $_GET["param"] sein oder hast du eingestellt das alle post/get vars in normale variablen namen umgewandelt werden?
wobei ich dachte der nimmt als default wert `term`hast denn mal ausgegeben was da überhaupt als query gebaut wird?
-LA
wobei ich dachte der nimmt als default wert `term`hast denn mal ausgegeben was da überhaupt als query gebaut wird?
-LA
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »lorenz« (26. August 2011, 16:36)
Ja du hattest Recht es hat das
gefehlt. Jetzt gehts. Nun möchte ich aber das wenn ich den Artikel eingebe er auch gleichzeitig nach der Stückzahl und dem Preis sucht und wenn er was gefunden hat dies auch in den input Felder anzeigt. Wie könnte man das machen?
|
|
PHP-Quelltext |
1 |
param = $_GET['term'];
|
gefehlt. Jetzt gehts. Nun möchte ich aber das wenn ich den Artikel eingebe er auch gleichzeitig nach der Stückzahl und dem Preis sucht und wenn er was gefunden hat dies auch in den input Felder anzeigt. Wie könnte man das machen?
Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.
ich kenne ja deine Db-Struktur ja nicht. Aber ich denke mal du wirst halt Tabellen joinen, dann kannst das Ergebnis doch einfach in deinem JSONP (warum auch immer du kein JSON nutzt wenn es nur auf deinem server läuft
?) Array zurück geben. Dann musst halt nur bei einem select die zusätzlichen Array-Felder nehmen und den Reset des Forms ausfüllen.
hier wird doch im Prinzip sowas gezeigt
http://jqueryui.com/demos/autocomplete/#custom-data
-LA
?) Array zurück geben. Dann musst halt nur bei einem select die zusätzlichen Array-Felder nehmen und den Reset des Forms ausfüllen.hier wird doch im Prinzip sowas gezeigt
http://jqueryui.com/demos/autocomplete/#custom-data
-LA
Ich bin jetzt soweit gekommen das ich die Daten in das Array geschrieben hab und das ausgeben klappt auch, nur wie ich die Menge und den Preis jetzt noch in die davür vorgesehenden input Felder bekomme, so das jeweils das erste auch drin steht und der Rest so aufgeklappt ist wie bei Artikel weiss ich noch nicht. Der Link von dir hat mir net arg weitergeholfen, ich habs schon verstanden, aber nicht wie ich das jetzt mit meinem code kombinieren kann.
Das zum Beispiel jetzt hier steht wenn ich Butter eingeben soll da stehen Butter dann im nächsten Feld die 1 und im nächsten die 1.39.

PS: Ist das JSONP dachte das wär nur JSON
Das zum Beispiel jetzt hier steht wenn ich Butter eingeben soll da stehen Butter dann im nächsten Feld die 1 und im nächsten die 1.39.

|
|
Javascript-Quelltext |
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 |
//attach autocomplete $("#article").autocomplete({ minLength: 0, //define callback to format results source: function(req, add){ //pass request to server $.getJSON("inc/ajaxload/article.php?callback=?", req, function(data) { //create array for response objects var suggestions = []; //process response $.each(data, function(i, val){ suggestions.push(val.article); suggestions.push(val.unit); suggestions.push(val.price); }); //pass array to callback add(suggestions); }); } }); |
PS: Ist das JSONP dachte das wär nur JSON
Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Josephine« (30. August 2011, 20:19)
Das die anderen Felder auch aufklappen. Beispiel:
In der Datenbank gibt es die Milch mit verschieden Stückzahlen und Preisen.
Wenn ich jetzt zum Beispiel Mil anfange zu schreiben soll es mir den rest aufüllen:
Artikel Menge Preis
[ Mil.. ] [ 1 ] [ 1.99 ] <-- Das sind die Inputfelder
------------------------------------------------------
[ Milch ] [ 1 ] [ 1.99 ]
[ Milch ] [ 5 ] [ 1.43 ]
[ Milch ] [ 7 ] [ 1.34 ]
[ Milch ] [ 3 ] [ 1.56 ] <-- Das soll alles ausgeklappt werden
In der Datenbank gibt es die Milch mit verschieden Stückzahlen und Preisen.
Wenn ich jetzt zum Beispiel Mil anfange zu schreiben soll es mir den rest aufüllen:
Artikel Menge Preis
[ Mil.. ] [ 1 ] [ 1.99 ] <-- Das sind die Inputfelder
------------------------------------------------------
[ Milch ] [ 1 ] [ 1.99 ]
[ Milch ] [ 5 ] [ 1.43 ]
[ Milch ] [ 7 ] [ 1.34 ]
[ Milch ] [ 3 ] [ 1.56 ] <-- Das soll alles ausgeklappt werden
Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.
da gibt es mehrer Sachen die du dich vorher fragen solltest wenn du das so Aufziehen willst.
- macht es wirklich sinn alle 3 einzeln aufpoppen zu lassen? bzw soll man die anderen auch auswählen können und bei ihnen rauf klicken können?
- kann man auch andere werte Eintragen als vorgegeben werden?
- erlauben die anderen auch die gleiche Funktion also wenn man zb bei Menge 1 tippt kommt dann bei Artikel auch verschiedenes ?
die Fragen solltest dir erst mal beantworten das kann doch recht komplex und Fehler anfällig werden
ansonsten ist son system theoretisch nicht so schwer du musst halt durch das Feld, in dem Fall jetzt Artikel, die Daten vom Server abfragen und dann das Array in source auf die anderen Felder aufteilen und sie dann Aufklappen zb mit
-LA
- macht es wirklich sinn alle 3 einzeln aufpoppen zu lassen? bzw soll man die anderen auch auswählen können und bei ihnen rauf klicken können?
- kann man auch andere werte Eintragen als vorgegeben werden?
- erlauben die anderen auch die gleiche Funktion also wenn man zb bei Menge 1 tippt kommt dann bei Artikel auch verschiedenes ?
die Fragen solltest dir erst mal beantworten das kann doch recht komplex und Fehler anfällig werden

ansonsten ist son system theoretisch nicht so schwer du musst halt durch das Feld, in dem Fall jetzt Artikel, die Daten vom Server abfragen und dann das Array in source auf die anderen Felder aufteilen und sie dann Aufklappen zb mit
|
|
Javascript-Quelltext |
1 |
$menge.autocomplete( "search", "" ); |
-LA
Vielleicht gebe ich dir einfach mal so ein Beispiel. Also ich will damit meine Kassenzettel verwalten und da ich fast immer oder oft das selbe Zeugs kaufe will ich das nicht immer und immer wieder eintippen müssen. Also hab ich mir gedacht, wenn ich das Wort Milch eintippe soll er mir vorschlagen zu welchem Preis und welcher Menge ich es schonmal eingetragen habe. Das ich dann wählen kann was zutrifft. Wenn es nicht zutrifft dann soll man einfach in die Felder den neuen Wert reinschreiben. Das ganz soll also nur auf Artikel anspringen. Wenn ich jetzt in Menge oder Preis was reinschreibe soll er mir nichts anzeigen oder ändern. Ich hoffe du hast jetzt den Durchblick
Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.
Dann würde ich das denke ich ein wenig anders lösen. Ich vermute mal du kannst bei Artikel auch Sachen reinschreiben die noch nicht in deiner DB drin stecken.
Was spricht dann dagegen das du erst den Artikel ausfüllst und dann wenn du etwas aus der Liste ausgewählt hast oder ein Artikel rein geschrieben hast und dann "blurst" also das Feld verlässt zb in dem du tabs oder in das Feld Menge klickst dann per JS nachfragst ob der Artikel schon drin ist in der DB und dem entsprechend das autocomplete populierst und das gleiche dann bei Preis?
-LA
Was spricht dann dagegen das du erst den Artikel ausfüllst und dann wenn du etwas aus der Liste ausgewählt hast oder ein Artikel rein geschrieben hast und dann "blurst" also das Feld verlässt zb in dem du tabs oder in das Feld Menge klickst dann per JS nachfragst ob der Artikel schon drin ist in der DB und dem entsprechend das autocomplete populierst und das gleiche dann bei Preis?
-LA
Jaa das ist noch Besser
Stimmt genauso mach ich das
Du bist mein Held hab ja ganz vergessen das das JS auch kann. Mach was wenn man das feld verlässt. Mal sehn ob ich das hinbekomme ich versuch mal. ...mhhh nur wie bekomme ich die Daten von hier:
in die einzelnen Felder?
Stimmt genauso mach ich das
Du bist mein Held hab ja ganz vergessen das das JS auch kann. Mach was wenn man das feld verlässt. Mal sehn ob ich das hinbekomme ich versuch mal. ...mhhh nur wie bekomme ich die Daten von hier:|
|
Javascript-Quelltext |
1 2 3 4 5 6 |
//process response $.each(data, function(i, val){ suggestions.push(val.article); suggestions.push(val.unit); suggestions.push(val.price); }); |
in die einzelnen Felder?
Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

- 1
- 2

Ähnliche Themen
-
Datenbanken »-
Datenbank verwurschtelt mit Edit
(9. Juli 2011, 12:47)
-
PHP »-
Reports in Datenbank einfügen.
(13. April 2011, 18:45)
-
PHP »-
Zufällige frage erstellen?
(28. Juli 2010, 21:08)
-
(X)HTML & CSS & DHTML & Javascript »-
Autovervollständigung automatisch deaktivieren?
(16. März 2006, 16:27)
-
(X)HTML & CSS & DHTML & Javascript »-
Input-History via Java-Script löschen?
(11. Oktober 2004, 14:36)


