News - Features - Downloads - Forum - Team - Support - Switch View: Screen
Login - Registrierung - Passwort vergessen

Antworten: 6
Seite [1]
Nachtmeister


Specialist




Herkunft: Bern
Beiträge: 2091
# Thema - 04.03.2009 um 09:26 Uhr
Ich arbeite gerade an einem Webinterface für ein Arbeitsprojekt. Dabei geht es für mich vorallem drum, dass interface möglichst Benutzerfreundlich und Modern zu gestalten. Darunter kommen auch AJAX und jQuery zum Zug. Ich möchte dem Benutzer aber auch die Möglichkeit geben, Javascript des Webinetrfaces auszuschalten, falls er von einem langsamen Terminal Notebook oder einem nicht so stabilen Linux System drauf zu greift.

Eine Möglichkeit wäre, einfach zwei Oberflächen anzubieten. Vielleicht gäbe es aber auch eine Möglichkeit, den Javascriptteil im Header einfach Auszukommentieren per Tatendruck. Ich weiss es nicht.

Welche Möglichkeiten habe ich? Welche würdet ihr Vorschlagen?

Ich weiss auch nicht, ob so etwas auch Benutzerbedingt einstellbar ist, da die Benutzerdaten über einen LDAP Server verknüpft werden. Ich denke also eher an eine allgemeine Einstellung.


------------------
"God created the universe in 1 Day, and then spent 5 days making it look good In Internet Explorer"
Inaktiv
Fr33z3m4n ClanSphere Team


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 1 - 04.03.2009 um 09:44 Uhr
wenns per PHP öäuft, abfrage ob JS erlaubt, wenn ja, das includen der js zulassen, ansonsten nein.


------------------
mfg
Patrick "Fr33z3m4n" Jaskulski

Antoine de Saint-Exupéry: Wenn Du ein Schiff bauen willst, so trommle nicht Männer zusammen, um Holz zu beschaffen, Aufgaben zu verteilen, sondern lehre die Männer die Sehnsucht nach dem endlosen weiten Meer.

Inaktiv
|
SCHIRI ClanSphere Team


Weltmeister



Herkunft: Hamburg
Beiträge: 5299
# Antwort: 2 - 05.03.2009 um 19:24 Uhr
Bei einer schon geladenen Seite kann man nachträglich nichts mehr an den js-inlcs ändern. Also kein neues js-Dokument einbinden oder wieder entfernen. Php weiß auch nichts von js. Die einzige was du machen kannst ist per button in die Session zu speichern ob js gewünscht ist oder nicht. Oder du gehst davon aus, dass langsame Computer sowieso js deaktiviert haben.


------------------
www.laszlokorte.de

Inaktiv
|
Nachtmeister
Thread-Ersteller


Specialist




Herkunft: Bern
Beiträge: 2091
# Antwort: 3 - 05.03.2009 um 19:30 Uhr
hmm... hab die meisten AJAX und Javascript Sachen wieder entfernt. Das ganze ist zu schwer mit PHP zu verbinden. Beispielsweise wollten wir eine Live Edit Funktion haben. Also einzelne Tabellen einträge direkt per Mausklick auswählen, dann wird der ausgewähle Eintrag automatisch per AJAX in ein Form Feld umgewandelt und man hat die Möglichkeiten das Ganze per AJAX zu editieren. Da die Einträge aber dynamisch generiert werden und innerhalb einer foreach schlaufe liegen, wussten wir einfach nicht, wie wir das Ganze mit Javascript ansprechen sollen, da wir keine feste ID haben, die wir auswählen können. Und irgendwie müssen wir Javascript ja sagen, welche ID gerade bearbeitet wird beim Mausklick, damit der Eintrag in der Datenbank editiert werden kann.

War aber schlussendlich irgendwie zu kompliziert für uns.


------------------
"God created the universe in 1 Day, and then spent 5 days making it look good In Internet Explorer"

Inaktiv
|
SCHIRI ClanSphere Team


Weltmeister



Herkunft: Hamburg
Beiträge: 5299
# Antwort: 4 - 05.03.2009 um 19:42 Uhr
Du musst einfach alles in divs verpacken und denen die Ids der Datensätze in der datenbank geben. Dann kannst das ja mit js anhand der ids wieder aufsclusseln.


------------------
www.laszlokorte.de

Inaktiv
|
Nachtmeister
Thread-Ersteller


Specialist




Herkunft: Bern
Beiträge: 2091
# Antwort: 5 - 05.03.2009 um 21:28 Uhr
Das ist ja das Problem. Logisch kann ich Elemente per ID's ansprechen, aber was machst du, wenn die ID dynamisch Generiert wird von Smarty?

nehmen wir an ich mach ein getElementByID('')

jetzt überleg mal was ich da für eine ID ansprechen will, wenn ich eine dynamisch erstellte Tabelle habe und beim Klick auf eine ID, muss diese irgendwie an Javascript übergeben werden.

Also ich bin ja noch nicht lange mit Javascript unterwegs. Deswegen fehlt mir da irgendwie die Erfahrung, so etwas mit Javascript auszulesen oder zu übergeben.


------------------
"God created the universe in 1 Day, and then spent 5 days making it look good In Internet Explorer"

Inaktiv
|
SCHIRI ClanSphere Team


Weltmeister



Herkunft: Hamburg
Beiträge: 5299
# Antwort: 6 - 05.03.2009 um 21:48 Uhr
du kannst elemente auch ohne getElementById finden und ansprechen. jQuery und andere JS-Frameworks haben das z.B. auf die CSS-Selectoren abstrahiert.

z.B. so:

<div id="user_1" class="liveedit">
<div title="users_name">
SCHIRI
</div>
</div>

<div id="user_3" class="liveedit" />
<div id="user_4" class="liveedit" />
<div id="user_5" class="liveedit"/>
<div id="user_8" class="liveedit" />


Dann per jquery:

$('.liveedit div').onclick= function() {
this.title // this ist hier in der funktion der jeweils angeklickte div. mit this.title kannst du den title auslesen und weisst welches feldgeupdatet werden soll. mit this.parent() kannst du auf das elternelement zugreifen um davon die id zu holen, mit this.parent().id oder so. die kannst du dann an dem underscore spliten und so gehts dann weiter.
}

ob die funktion fürs elternelement jetzt genau parent() heisst oder anders weiss ich grad nicht, müsstest du mal nachgucken. und ob man jetzt wirklich title also atribut nehmen sollte oder vllt lieber name oder ein anderes weiss ich nicht, aber das wäre halt so das grundprinzip. gibt bestimmt auch einen css-selector bei dem man alle elemente findet, deren "ID anfängt wie", z.B. alle elemente dessen ID mit user_ anfängt, dann kann man sich auch die liveedtit class sparen.


------------------
www.laszlokorte.de

Inaktiv
|
Antworten: 6
Seite [1]


Sie müssen sich registrieren, um zu antworten.


ClanSphere Project - Mailus - Imprint - Disclaimer - Scriptinfo