Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.20 veröffentlicht (27.02.19)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
"Ausklappen" der Mitglieder
#1
Hi!

Beim Eingeben des EMpfängers beim Erstellen einer privaten Nachricht, werden ja Vorschläge angezeigt. Ich würde gerne genau das gleiche bei einem meiner Plugins machen - Und zwar genau das gleiche - Aber weiß nicht, wie ich es am besten machen sollte.

Die Mitglieder zu "queryn" ist einfach:
Code:
$query = "SELECT `username` FROM `".TABLE_PREFIX."users` WHERE `username` LIKE '{$startstring}%'";
        $result = $db->query($query);
        $r = array();
        while(($re = $db->fetch_array($result)) != null){
            array_push($r, $re);
        }
Das ganze dann noch per JSON verpacken, und dann mit AJAX requesten. Das was ich aber gerne wüsste, ist wie das mit der Anzeige gemacht wird. Ich könnte natürlich ein fixed-html-element beim ajax-callback einfügen; Allerdings müsste ich dann alles selbst machen, auch die buttons. Wie ist das bei MyBB gemacht worden?

MfG
Zitieren
#2
Code:
<script type="text/javascript" src="jscripts/autocomplete.js?ver=1400"></script>
<script type="text/javascript">
<!--
    if(use_xmlhttprequest == "1")
    {
        new autoComplete("FELD", "xmlhttp.php?action=get_users", {valueSpan: "username"});
    }
// -->
</script>
Bei FELD die ID des passenden Eingabefeldes einsetzen, fertig. Wink
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#3
Wow, vielen Dank! Wird sofort versucht Big Grin!

Ich stelle mich grad irgendwie bescheuert an, irgend will es nämlich nicht richtig o.o ...
Mein Input-Feld sieht so aus:
Code:
<input id="g_un" type="text" placeholder="Benutzernamen eingeben..."/>
(Hab' auch schon versuch ein autocomplete="off" dranzuhängen)

Das JS-Skript habe ich im Header eingefügt; Probleme gabs keine, und in der Console steht auch kein Fehler. Nur werden die BenutzerNamen eben nicht angezeigt Sad...
("FELD" natürlich mit "g_un" ersetzt)
(Auch schon 'ne Textarea versucht; Sogar mit dem fast-genauen code aus der generierten PN Seite... Also irgendwie stelle ich mich wirklich blöd an Oo)
Zitieren
#4
Ich habe die autocomplete-Fkt. mal für das Tagging-Plugin umgesetzt. Du kannst Dir hier gerne mal ansehen, wie das umgesetzt wird...
viele Grüße
Jockl
übersetzte und eigene Plugins
Zitieren
#5
Leider gibt mybb.com zurzeit eine 502-Error aus Sad...
Zitieren
#6
Der Anhang in dem von mir verlinkten Beitrag verweist doch gar nicht auf mybb.com!?
viele Grüße
Jockl
übersetzte und eigene Plugins
Zitieren
#7
Hoppla, sorry! Dachte der Post obendrüber war gemeint - Also das Plugin, und nicht die Mod.

Habe nun einen Teil meines Fehlers entdeckt: Ich habe "general.js" und "prototyp.js" nicht eingefügt gehabt. Da es allerdings immer noch nicht funktioniert hat, habe ich in autocomplete etwas umgedändert, so dass ich eine alert bekomme, wenn er die textbox nicht erkennt:
Code:
if(!$(textbox))
        {
            alert("...");
            return false;
        }
Und komischerweise bekomme ich diese Meldung...
Obwohl mein Input richtig aussieht, und ich die 2-js codezeilen angepasst hatte.

LG
Zitieren
#8
Ich würde ihn hinter dem Eingabefeld (ob direkt oder erst deutlich später, ist egal). Ansonsten könnte es passieren, dass das Feld beim Initialisieren noch gar nicht exisitert.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#9
Kannst Du evtl. etwas mehr an Infos bzgl. Deiner Code- und Templateanpassungen veröffentlichen, damit man sich ein besseres Bild davon machen kann? Nützlich könnte auch ein Link zu Deiner Seite sein, auf der man sich die Funktion mal ansehen kann....
viele Grüße
Jockl
übersetzte und eigene Plugins
Zitieren
#10
@StefanT

Vielen Dank, jetzt gehts Big Grin! Theoretisch hätte ich den Code doch auch einfach in eine Funktion schreiben können, und diese beim laden aufrufen - Oder?

@Jockl
Link zur Seite geht leider nicht, da ich zurzeit alles lokal per XAMPP mache - Aber Code kann ich sobald wieder mal etwas nicht klappt gerne veröffentlichen Smile.

LG
Ein Fehler bleibt... Sobald ich prototype.js einfüge, was ja der Fall sein muss, funktioniert jQuerys SElector nicht mehr Oo?! Es wird dann immer "null" zurückgegeben...
Zitieren