Beiträge von cottton

    Wenn ich nix übersehen hab, dann gibts nur id und class.

    Zur zweiten Frage:

    CSS
    #namenlos1{
     /*container id namenlos1 ansprechen*/
    }
    #namenlos1 img{
     /*alle img elemente in id namenlos1 ansprechen*/
    }


    bsp:

    HTML
    <div id="div_container">
     <p class="normal_text">
      text usw ...
     </p>
     <img src="..." ... />
     <p class="normal_text">
      text usw ...
     </p>
    </div>

    Also guck Dir erstmal an was Du da geschrieben hast, wenn man es untereinander anreiht:

    so könnte man das Ganze umsetzen:

    0 array könnte leer sein wenn du evtl $x = 0; definiert hast, und VOR dem ersten insert ins array schon ein +1 oder $x++ hast.

    Wenn es dir möglich ist: schicke die daten gleich sortiert ins array rein.
    zb


    oder:

    wenn du es so nutzen willst we es im moment ist, dann evtl sowas hier:


    ! => ist aber nicht wirklich empfehlenswert, da bei vielen daten eine längere schleife entsteht.

    Wenn du aber die daten im array nach domain sortiert hast, dann erübrigt sich die schleife.

    nein.
    Es gibt auch andere möglichkeiten. zB das gleiche prinzip per javascript.
    Oder auch gar kein <img ...> angeben und erst bei onmousover per javascript das img einfügen bzw laden (ajax).

    Aber wenn dir das alles nix sagt, dann würde ich eher "pagespeed" empfehlen. (https://developers.google.com/speed/pagespeed/)
    Darin enthalten ist u.a. "lazyload". Dadurch werden (einfach gesagt) bilder nachgeladen, wenn sie benötigt werden.
    Einfach mal ansehen =)

    danke sieht gut aus. scheint aber auch nicht mit flash zu funktionieren =(


    EDIT: hab jetzt nach langer suche nen "schlussstrich" gezogen - es ist nicht möglich einen screenshot von einem element zu erstellen, welches ein iframe oder flash content enthält.
    Beim iframe lingt es wohl daran, dass zB html2canvas auf die DOM-elemente zugreifen müsste, was allerdings cross site scripting wäre und somit unterbunden wird.
    Man erhält also zugriff auf das iframe DOM element, allerdings nicht auf den content.
    Schade - aber wohl richtig so =/

    Hab mir das script jetzt nicht angesehen, weiß aber genau was Du meinst =)

    Ich hab auf unserer seite auch tabellen mit nem haufen bildern bei mouseover.
    Hab das ganze dann so gelöst, dass die src des img auf default leer ist und erst bei mouseover eingefügt wird.

    bsp:

    trigger ist relativ einfach. Schließe mich aber gerade der "Seite" der "nicht triggernden" an :D
    Trigger sind ja schön. Nur verursachen die nur kopfschmerzen.
    Es ist einfach besser die tabellen in beziehung zu setzen (fremdschlüssel ...@innoDb) und so entscheiden zu lassen, wann was geändert oder gelöscht wird.

    bsp:
    2 tabellen:
    mastertabelle "benutzer", (id,name, ...)
    detailtabelle "benutzereinstellungen" (nr[autoincrement],id,einstell1,einstell2,...)

    die beiden werden nun "verknüpft" per "foreign key" (freamdschlüssel)

    SQL
    ALTER TABLE ´dbname´.`benutzereinstellungen` -- die detailtabelle "benutzereinstellungen" ändern
        ADD CONSTRAINT `foreignkeyname` -- irgend ein name
        FOREIGN KEY (`id`) -- die spalte "id" der detailtabelle "benutzereinstellungen" ist ein fremdschlüssel
        REFERENCES `dbname`.`benutzer` (`id`) -- spalte "id" der mastertabelle "benutzer" ist die referenz
        ON DELETE CASCADE -- beim löschen in der mastertabelle => auch in dieser tabelle löschen
        ON UPDATE NO ACTION -- bei update in der mastertabelle => keine aktion
    ;


    Also - keine trigger mehr =)

    Kennt jemand von euch ne lösung wie man per js ein screenshot vom inhalt eines div containers erstellt, auch wenn darin zb ein iframe auftaucht?

    html2canvas funktioniert nicht, da iframe ect nicht klappt

    Zitat von http://html2canvas.hertzen.com/documentation.html

    The script doesn't render plugin content such as Flash or Java applets. It doesn't render iframe content either, unless the content resides under the same origin.

    thanks

    EDIT
    Vergiss es =) Hab gerade selbst was gelernt
    (Danke Roland =)

    include 'variabeln.php'; Dürfte so nicht funktionieren.


    Wenn Du per include etwas nachlädst, dann erwartet PHP nun mal PHP,
    Was bei Dir aber geladen wird ist für PHP nicht "lesbar".


    Um deutlicher zu werden- Bsp:
    Das hier:

    PHP
    echo '... test usw ...';include 'variabeln.php';


    würde so "enden":

    PHP
    echo '... test usw ...';<!-- Variabeln -->                                                        <?php $Datum = $_POST["Datum"]; $Einkaufsliste = $_POST["Einkaufsliste"]; ?>                                                                                                                                                    <!-- Variabeln Ende -->


    Es sei denn es ist nur ein Ausschnitt aus der "variabeln.php"

    Groß und Kleinschreibung beachten =)

    Im Formular setzt Du den Namen auf "From". Beim Speichern aber fragst Du "FROM" ab.

    Setz mal: error_reporting(E_ALL); am anfang des Scripts (solange Du daran arbeitest). Dann bekommst Du "solche Sachen" als Waring: "Notice: Undefined index: FROM in ..."
    (http://php.net/manual/en/function.error-reporting.php)


    btw:
    Mach es Dir mal einfacher. Anstatt immer:

    PHP
    <?php echo "Eingetragener Startort: ". $_POST['From']; ?>
    <br>
    <?php echo "Eingetragener Zielort: ". $_POST['To']; ?>
    <br>
    <?php echo "Eingetragene Startzeit: ". $_POST['Startzeit']; ?>
    <br>
    ...


    kannst Du auch solche Blöcke zusammen fassen (liest sich besser ect)

    Du kannst Files nutzen - .txt, .dat, .csv ... . Es macht halt mehr Sinn eine Datenbank zu nutzen, sobald es "viele" Daten werden.
    Und ich denke bei dem was Du vor hast werden es nicht wenig sein.

    Unterschiede zw. mysql und mysqli weiß ich nicht. Würde aber auch gleich das hier empfehlen: http://www.php.net/manual/de/pdo.prepared-statements.php

    Zitat von http://www.webmasterwork.com/page/p359250-mysqli-oder-normales-mysql.html#post359250


    Bevor du nun aber beginnst, dich mit mysqli zu beschäftigen, rate ich dir eher, dich mit pdo-Treibern (mysql-pdo) zu beschäftigen. In der kommenden php -Version 6 werden die pdo-Treiber der empfohlene Standart für den Zugriff auf Datenbanken sein. Der Vorteil dieser pdo-Treiber ist, dass sie gemeinsame Schnittstellen nutzen. Dadurch ist die Migration von einem Datenbankmanagementsystem auf ein anderes wesentlich einfacher möglich, als bisher.

    Ich weiß ja auch nicht wie weit Du bist. Evtl ist es für Dich mit Files einfacher. Hab auch so angefangen. Allerdings wird es "komisch" sobald Du um die 50 000 Einträge einzulesen hast.
    Um es ein bischen zu verdeutlichen:
    durchsuchen von rund 50 000 Einträgen
    - in Files ~2 sec (wenn ich mich richtig erinnere) (einlesen plus durchlaufen/suchen)
    - in datenbank ~ 0.00x sec

    Btw - von "normalem" sql zu PDO kann man auch nochmal einen kleinen Geschwindigkeitsschub feststellen.
    Liegt u.a. an Sachen wie mysqli_real_escape_string(). Diese function wird im "normal"-sql gebraucht, um Benutzer-Input zu maskieren, ist aber auch arsch langsam.
    Bei PDO aber brauchst Du gar keinen Input maskieren (WENN man es richtig nutzt!).
    Aber ich schweife ab ... =)

    edit: oops da war jemand schneller =)

    Das "komplette Programm" würde ich sagen.
    Stichworte: mysql, php, jsvascript, ajax

    Per MySql speicherst Du Deine Daten
    - die Preise ect. müssen ja irgentwo her kommen. Kannst auch Files nutzenm. Ist aber nicht zu empfehlen.

    Per PHP erstellst du die Website dynamisch auf den Kunden bezogen
    - Kd eingeloggt, evtl Vorzüge, ect

    Per Javascript legst Du Events auf die Buttons bzw Select fields.
    - onchange() -- siehe zB hier: http://www.mediaevent.de/javascript/onchange.html

    Per Ajax lädst Du bei Veränderung ( onchange() ) die Preise, Größen ect vom Server nach.
    - wenn Daten erfolgreich geladen, dann zum letzten Punkt:

    Per Javascript sprichst Du die Betroffenen Felder/Tabellen/Ergebnisanzeigen an um die neuen Daten anzuzeigen.
    - zB: getElementById('gewicht').innerHTML = calcNewWeight(...);


    edit: wie Basiii schon sagte ist es einfacher ohne ajax. Somit müsste der benutzer zum neuberechnen das Formular absenden und die Werte würden seitens php erneuert.
    btw - Du solltest auch nicht auf das Formular verlassen. POST oder GET -Daten können "gefaked" werden.
    Soll heißen: verlass Dich nicht auf den in der Form stehenden Endpreis/Gewicht/ect. Es sollte serverseitig auf jeden Fall alle "Items" gegen gecheckt werden, sonst sendet Dir jemand per POST seine "eigenen" Werte =)

    Wobei diese Function sogar für beide Seiten - php-seitig und javascript-seitig - genutzt werden kann:
    - onchange lässt Du per ajax die php function auf dem server die Werte neu berechnen und gibst die neuen Daten zurück
    - wenn das Formular angesendet wird nutzt Du die gleiche function erneut, um zu sehen ob Auswahlt und Ergebnis passen

    Was machst Du denn?

    PHP
    if ( checkdate($_POST['monat'],$_POST['tag'],$_POST['jahr']) === true ) 
    { 
    echo "Datum ok"; // Ausgabe Datum ok 
    } 
    else 
    { 
    echo "Datum nicht richtig" ; 
    }


    Du sollst es doch nicht ausgeben lassen :D
    Es soll doch als Prüfung dienen:

    PHP
    if ( checkdate($_POST['monat'],$_POST['tag'],$_POST['jahr']) === true ) 
    { 
     # hier schreibst Du weiter. Also ab hier kannst Du die POST Daten nutzen, um sie in die db zu schreiben.
    } 
    else 
    { 
     # hier kommt die Fehlerbehandlung rein (zB Meldung an den Benutzer)
    }

    Guck am besten hier mal rein; http://www.php-kurs.com/beispiel-gaest…p-und-mysql.htm
    =)

    sorry, hab " = ".$datum."" vergessen:

    PHP
    $sql="INSERT INTO ´datum´ SET ´geburtsdatum´ = ".$datum.", id = ".$id." ON DUPLICATE KEY UPDATE ´geburtsdatum´ = ".$datum."  ";

    Wieso eigl "gast" ? So wie ich das sehe speicherst Du jetzt alle Einträge mit id "" (leer).
    Die Tabelle sähe dann in etwa so aus:

    PHP
    zeile	id		geburtsdatum
    1				11.11.2011
    2				22.02.2001
    3				10.12.2011


    Somit kannst Du keinen Beutzer identifizieren.

    btw: checkDate() => http://www.php.net/manual/en/function.checkdate.php

    PHP
    if ( checkdate($_POST['monat'],$_POST['tag'],$_POST['jahr']) === true )
    {
     # datum ok
    }
    else
    {
     # datum nicht ok
    }

    Nein, nicht irgenteine ID vergeben =)

    Von vorn:

    (angenommen) Du hast eine momentan leere Datenbank mit
    - Tabelle "benutzer" mit Spalten "ID" (fortlaufend), "name", ect
    - Tabelle "datum" mit Spalten "ID", "geburtsdatum", ect

    Wenn sich jetzt ein Benutzer registriert, dann erstellst Du in Tabelle "benutzer" einen Neuen Benutzer
    zb;
    "INSERT INTO ´benutzer´SET ´name´ = ".$_POST['name']." "
    Dabei wird die ID vom SQL-Server fortlaufend erstellt -- hier zB "1".

    Damit hast Du in Tabelle "benutzer" eine Zeile (Datensatz) mit:
    ID: 1
    name: soundso

    und in Tabelle datum steht noch nichts drin.


    Jetzt hat sich der Benutzer soundso eingeloggt und Du hast anhand des Logins Seine ID -- im Bsp "1".
    Du "zeigst" dem Benutzer das Formular zum angeben des Geburtsdaturms. Der füllt es aus und schickt es ab.
    Dadurch weißt Du, dass Benutzer mit ID "1" das datum "$datum" angegeben hat und speicherst es in der Datebbank -- in etwa so:
    "INSERT INTO ´datum´ SET ´geburtsdatum´ = ".$datum.", ID = ".$id." "

    Man kann das Ganze jetzt noch weiter ausbauen, wie zB:
    "INSERT INTO ´datum´ SET ´geburtsdatum´ = ".$datum.", ID = ".$id." ON DUPLICATE KEY UPDATE ´geburtsdatum´"
    -> bedeutet: wenn primärschlüssel "ID" (=>einzigartig/nur einmal vorkommend) schon vorhanden ist, dann update in diesem Datensatz nur das feld ´geburtsdatum´ mit dem neuen Wert.

    Empfehlung: http://www.php-kurs.com/mysql---datenbank-unter-php.htm