php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 30-01-2008, 09:40
infernalshade
 Member
Links : Onlinestatus : infernalshade ist offline
Registriert seit: Jan 2008
Beiträge: 165
infernalshade ist zur Zeit noch ein unbeschriebenes Blatt
Standard Informationen im schwebenden div erst "bei Bedarf" auslesen

Hallo!

Habe ein bissl kniffliges Problem...

Szenario:
Ich lese aus einer Mitarbeiter-Datenbank die Mitarbeiter aus anhand von Suchkriterien...
Die Ergebnisse werden untereinander aufgelistet.
Mit einem Klick auf den Namen des Mitarbeiters kommt man auf eine Übersicht in welchen Einsätzen sich der Mitarbeiter im Moment befindet.

Problem:
Wenn man jetzt einen bestimmten Einsatz sucht muss man jeden Mitarbeiter durchklicken...

Frage:
Gibt es eine Möglichkeit ein "frei schwebendes div" (mit Infos zu den Einsätzen) neben dem Mauszeiger anzuzeigen sobald man mit der Maus über die Namen fährt? Die Daten sollen aber erst beim überfahren des Namens des jeweiligen Mitarbeiters ausgelesen werden (Da das eine nicht grad kleine SQL-Abfrage ist und die Seite sehr lange zum laden brauchen würde, wenn ich alle Daten gleich im vorhinein auslesen würde...)

Bisheriger Lösungsansatz:
- Funktioniert das eventuell mit einem iframe in dem div?


Vielen Dank schonmal im voraus!!!

mfg
infernalshade
Mit Zitat antworten
  #2 (permalink)  
Alt 30-01-2008, 09:45
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Stichwort: Ajax
Mit Zitat antworten
  #3 (permalink)  
Alt 30-01-2008, 09:45
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

ja das geht mit ajax und css. allerdings rate ich von dieser lösung ab, da du immer eine zeitverzögerung hast, die das ganze sehr unkomfortabel macht. generell such mal bei google nach tooltip, da gibt es schon massenhaft scripte.

gruß
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #4 (permalink)  
Alt 30-01-2008, 10:03
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@topicstarter
Zitat:
Mit einem Klick auf den Namen des Mitarbeiters kommt man auf eine Übersicht in welchen Einsätzen sich der Mitarbeiter im Moment befindet.
...
Die Daten sollen aber erst beim überfahren des Namens des jeweiligen Mitarbeiters ausgelesen werden (Da das eine nicht grad kleine SQL-Abfrage ist und die Seite sehr lange zum laden brauchen würde, wenn ich alle Daten gleich im vorhinein auslesen würde...)
Wieso die Daten nochmals auslesen. Hast du das nicht bereits getan wenn du die Benutzer aus dem DB liest? Am besten legst du dir eine JS Fkt an z.B. showDetails() die als Parameter den Text will, der angezeigt werden soll. Die showDetails() holt sich das div oder den span in dem die Anzeige erfolgen soll und schreibt den Text rein, danach setzt die Fkt das div sichtbar.
Diese Funktion rufst du am besten beim onmousover Event des Links mit dem Mitarbeiternamen auf und bei onmouseout setzt du den div wieder auf unsichtbar
Du dann zu Ausgabe z.B. das machen
Code:
<script type="text/javascript">
<!--
function showDetails(text){
  document.getElementById('details').innerHTML = text;
  document.getElementById('details').style.visibility = 'visible';
}
function closeDetails(){
  document.get.ElementById('details').style.visibility = 'hidden';
  document.getElementById('details').innerHTML = '';
}
//div zu Anzeige
[...]
<div id="details" stlye="visibility:hidden"></div>
[..]
//Link zur Anzeige der Details
<a href="#" onmouseover="showDetails('Mitarbeiter A im Knast');" onmouseout="closeDetails();"</a>
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #5 (permalink)  
Alt 30-01-2008, 10:05
infernalshade
 Member
Links : Onlinestatus : infernalshade ist offline
Registriert seit: Jan 2008
Beiträge: 165
infernalshade ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Puh ihr macht mir Freude

PHP/CSS und Grundkenntnisse JS gut und recht aber AJAX kannte ich bis jetzt nur vom Namen her...Hab mich mal eben durch Wikipedia gelesen was AJAX ist!

Das ist genau das was ich brauche, jedoch stellt sich mir jetzt die Frage ob es sinnvoll ist sich jetzt mit AJAX näher zu befassen nur wegen diesem Problem... Vor allem weil auch der zeitliche Aspekt eine große Rolle spielt (Das Script muss bis Freitag fertig sein )

Naja aber dafür könnt ihr ja nichts, auf jedenfall trotzdem Danke für die Tipps

Aber sonst gibt es keine "einfachere" Lösung oder?

(Verzögerungen würde ich übrigens in Kauf nehmen)

mfg
infernalshade
Mit Zitat antworten
  #6 (permalink)  
Alt 30-01-2008, 10:09
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Du hast drei Möglichkeiten:
1. AJAX Lösung --> du bist länger dran bis du damit fertig bist und musst ggf mit Verzögerungen leben
2. JS Lösung ohne AJAX --> du musst alle Daten zu den Mitarbeitern bereits auslesen, damit du die Fkt mit den entsprechenden Parametern erstellen kannst
3. Lösung nur mit PHP/HTML --> jeder Klick würde zu einem Request an den Server führen

Ganz ehrlich würde ich das jetzt mit JS ohne AJAX probieren...

Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #7 (permalink)  
Alt 30-01-2008, 10:18
infernalshade
 Member
Links : Onlinestatus : infernalshade ist offline
Registriert seit: Jan 2008
Beiträge: 165
infernalshade ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@ jahlives

Zu deinem ersten Comment:

Das geht leider nicht, aus folgendem Grund:
Die Datenbank (die nicht ich erstellt habe, nur so nebenbei ^^) speichert Daten unnötig in zig verschiedenen Tabellen...Sehr schlechte Konstruktion...Naja jedenfalls lese ich im ersten Step NUR die Namen der Mitarbeiter aus, das geht eigentlich recht flott!
Für die Mitarbeiterinfos muss ich ca 5-6 Tabellen auslesen, was sich dann schonmal pro Mitarbeiter auf so 2-4sek hinzieht.
Wenn ich jetzt alle Daten gleich auf einmal einlese und wenn im Suchergebnis so ca 500-1000 Mitarbeiter stehn, könnt ihr euch vorstellen dass das bissl dauern würde :-)

Zu deinem zweiten Comment:

Ich hätt mir das so vorgestellt das ich ein iframe in nem div habe und bei mouseover irgendwie mit window.location.href oder so einen link mit den Daten an das iframe schicke!

mfg
infernalshade
Mit Zitat antworten
  #8 (permalink)  
Alt 30-01-2008, 10:47
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
was sich dann schonmal pro Mitarbeiter auf so 2-4sek hinzieht
und das merkst du dann beim rollover. wenn es dich interessiert, ich habe ein kleines tutorial zum thema ajax verfaßt. vielleich hilft es dir. ist mit sicherheit einfacher als dein deine iframe-div-lösung.

gruß
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite

Geändert von Kropff (30-01-2008 um 10:52 Uhr)
Mit Zitat antworten
  #9 (permalink)  
Alt 30-01-2008, 10:54
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Da würde ich mir aber mal Gedanken über ein Re-Design deiner DB machen.
Wenn ich sowas lese
Zitat:
Für die Mitarbeiterinfos muss ich ca 5-6 Tabellen auslesen, was sich dann schonmal pro Mitarbeiter auf so 2-4sek hinzieht.
Dann deutet das darauf hin, dass deine Tabellen schlecht angelegt sind. Oder machst du pro Tabelle einen Request d.h. für einen MA schickst du 5-6 Requests an die DB? Falls ja dann wären wohl JOINS etwas für dich. Damit kannst du in einem Request Daten aus mehreren Tabellen holen. Könnte mir vorstellen, dass du mit vernünftig normalisierten Tabellen und entsprechenden Requests mittels JOIN die Abfragezeit pro MA auf einen Bruchteil zu reduzieren.

Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #10 (permalink)  
Alt 30-01-2008, 10:59
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Ich würde dir ebenfalls eher dazu raten, an deiner Datenbankstruktur sowie deinem Query zu arbeiten, statt Daten für Tooltips on the fly zu holen.
Mit Zitat antworten
  #11 (permalink)  
Alt 30-01-2008, 12:07
infernalshade
 Member
Links : Onlinestatus : infernalshade ist offline
Registriert seit: Jan 2008
Beiträge: 165
infernalshade ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hey Moment, mit Joins kenn ich mich aus und verwende diese auch
Ich will gar nicht denken wie lange die Abfrage mit einem Cross-Join dauern würde

Und wie gesagt die Datenbank habe ich nicht strukturiert!

Wir benutzen ein Programm zur Mitarbeiterverwaltung und DEREN Datenbank ist das, d.h. ich kann bzw darf an der Datenbank auch nichts rumschrauben weil sonst das Programm nicht mehr funktionieren würde!

Die Datenbank umfasst jetzt ca 3GB und hat über 200 Tabellen also von daher...

Ist einfach nicht durchdacht worden von den Typen...

Und bitte jetzt keine Angebote zu anderen Programmen, ich steh nicht in der Position Vorschläge für ein anderes Programm einzubringen *lach* ^^


Habs jetzt anders gelöst, bzw zum Teil gelöst...
Hab jetzt mit "overlib" Tooltip-Divs erzeugt die ich mit den Daten zuballer.
Hab da jetzt nur die wichtigstens Infos drin in dem div, welche ich gleich mit den Mitarbeiternamen einlesen lasse...
Sind zwar nicht alle Sachen drin die ich eigentlich wollte, aber so gehts auch


mfg
infernalshade
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:53 Uhr.