Ankündigung

Einklappen
Keine Ankündigung bisher.

JS und php bilderladen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • JS und php bilderladen

    Hallo Leute,

    ich habe ein Gedanken im Kopf der mich nicht mehr loslässt, gleichzeitig habe ich keine Ahnung wie ich es umsetzen soll.

    Gehen wir von eine Community aus, dort gibt es einen User X.

    Dieser User hat insgesammt y Bilder in seinem Album.

    Nun Stelle ich mir vor, dass ich Ein Bild vergrößert sehe. Über dem Bild sind die Bilder für den Direktaufruf und unter dem Bild die Kommentare.

    Soweit kein Problem zu realisieren.

    Jetzt möchte ich das ich via JavaScript/Ajax das Hauptbild geändert wird und die dazu gehörigen kommentare. (natürlich nach anklicken eines links).



    Die probleme die sich mir stellen sind:

    Ich kann via JavaScript keine erneute Db abfrage starten um die kommentare aus der Db auszulesen.

    Wie kann ich die Kommentare in die DB schreiben ohne die Seite neu zu laden?

    Da jeder User unterschiedlich viele Bilder hat müsste ich ja eigentlich alle in einem Array speichern oder?


    lg

    PS. Es ist kein Script vorhanden, da ich derzeit nicht davon ausgehe das es klappt wie ich es mir vorstelle. Nachdem ihr mir vlt ein paar tipps geben konntet ob und wie ungefähr es möglich ist setze ich mich dran.

  • #2
    Wenn du doch die Bilder per ajax laden kannst, dann doch auch die Kommentare. Auch Formulare kannst du per ajax nen Request absenden und Kommentare so speichern.

    PS. Es ist kein Script vorhanden, da ich derzeit nicht davon ausgehe das es klappt wie ich es mir vorstelle. Nachdem ihr mir vlt ein paar tipps geben konntet ob und wie ungefähr es möglich ist setze ich mich dran.
    Ein Javascript Framework deiner Wahl. prototype, mootools, dojo, jqueryui, extjs, yui...
    I like cooking my family and my pets.
    Use commas. Don't be a psycho.
    [URL="http://jscouch.de"]Blog[/URL] - [URL="http://coverflowjs.github.io/coverflow/"]CoverflowJS[/URL]

    Kommentar


    • #3
      Zitat von Verino Beitrag anzeigen
      Ich kann via JavaScript keine erneute Db abfrage starten um die kommentare aus der Db auszulesen.
      Lerne AJAX kennen.

      Wie kann ich die Kommentare in die DB schreiben ohne die Seite neu zu laden?
      Du kennst inzwischen AJAX.

      Da jeder User unterschiedlich viele Bilder hat müsste ich ja eigentlich alle in einem Array speichern oder?
      Kommt drauf an, was und wo du jetzt damit meinst.
      Serverseitig? Nein, da ist ein Array sicher nicht das geeignete Mittel der Wahl für die dauerhafte Datenhaltung.
      Clientseitig? Das kommt darauf an, welche Informationen du wann brauchst. Einen Teil davon wirst du sicher direkt in der HTML-Struktur mit unterbringen können, so dass dein JavaScript sie von dort auslesen kann.
      [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

      Kommentar


      • #4
        Zitat von ChrisB Beitrag anzeigen

        Kommt drauf an, was und wo du jetzt damit meinst.
        Serverseitig? Nein, da ist ein Array sicher nicht das geeignete Mittel der Wahl für die dauerhafte Datenhaltung.
        Clientseitig? Das kommt darauf an, welche Informationen du wann brauchst. Einen Teil davon wirst du sicher direkt in der HTML-Struktur mit unterbringen können, so dass dein JavaScript sie von dort auslesen kann.
        lese grade ein paar dinge bei Ajax nach und werde es versuchen.

        Was ich damit meine bsp:

        Helmut hat 9 Bilder
        Gudrun 20
        erwin 4
        ...

        ich muss doch gespeichert haben:
        1: wo ist das bild gespeichert (steht in der DB)
        2. welches bild wird grade aufgerufen.
        3. kommentare


        ich hätte das nun via array gemacht und dann das entsprechende via javascript angezeigt.



        ganz Konkrete frage: kann ich mit Ajax eine DB abfrage machen ohne die seite komplett neu zu laden?

        Kommentar


        • #5
          Zitat von Verino Beitrag anzeigen
          ganz Konkrete frage: kann ich mit Ajax eine DB abfrage machen ohne die seite komplett neu zu laden?
          Ganz konkrete Antwort: Du kannst damit einen HTTP-Request machen, der im Hintergrund ausgeführt und verarbeitet wird, ohne die Seite zu wechseln/neu zu laden, ja.
          [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

          Kommentar


          • #6
            Das ist schonmal ein toller ansatz.

            Ich weiß nun was ich nach zulesen habe und habe auch die ersten ansätze für eine Lösung.

            Ich ziehe mich nun ein paar Tage zum lesen und tüffteln zurück und sollte es nicht klappen habe ich auch paar scripte die ich vorlegen kann.

            Dann kann mir sicher wieder einer helfen.

            bis dahin, habt vielen dank.

            lg

            Kommentar


            • #7
              Zitat von Verino Beitrag anzeigen
              Das ist schonmal ein toller ansatz.

              Ich weiß nun was ich nach zulesen habe und habe auch die ersten ansätze für eine Lösung.

              Ich ziehe mich nun ein paar Tage zum lesen und tüffteln zurück und sollte es nicht klappen habe ich auch paar scripte die ich vorlegen kann.

              Dann kann mir sicher wieder einer helfen.

              bis dahin, habt vielen dank.

              lg
              Schau dir auch die Funktion [MAN]json_encode[/MAN] an, falls dir diese nicht bekannt ist.
              "Dummheit redet viel..Klugheit denkt und schweigt.." [Amgervinus]

              Kommentar


              • #8
                werde ich auch machen, habe ein script gefunden als ich nach http request gesucht habe auf dem kann ich wohl aufbauen da die erklärung auch sehr gut ist.

                Leider fehlt mir noch eine Info um richtig experimentieren zu können.

                Hier das Problem:

                link zum starten:
                PHP-Code:
                <a href="#?pro=1" id="link">Profil</a

                js script:



                PHP-Code:
                function $(id) {
                    return 
                document.getElementById(id);
                }
                 
                window.onload = function() {
                    $(
                'link').onclick = function() {
                       
                getHttpRequest();
                       return 
                false;
                    }
                }
                 
                function 
                getHttpRequest() {
                   
                    var 
                xmlhttp null;
                    
                // Mozilla
                    
                if (window.XMLHttpRequest) {
                        
                xmlhttp = new XMLHttpRequest();
                    }
                    
                // IE
                    
                else if (window.ActiveXObject) {
                        
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
                    }
                   
                    
                xmlhttp.open("GET"'ink/profil.php'true);
                    
                xmlhttp.onreadystatechange = function() {
                        if(
                xmlhttp.readyState != 4) {
                            $(
                'ergebnis').innerHTML 'Seite wird geladen ...';
                        }
                        if(
                xmlhttp.readyState == && xmlhttp.status == 200) {
                            $(
                'ergebnis').innerHTML xmlhttp.responseText;
                        }
                    }
                    
                xmlhttp.send(null);



                php datei

                PHP-Code:
                <?php 
                $pro 
                $_GET['pro'];
                if(
                $pro == "1") { 
                    echo 
                "Dies ist der übergebene Text";
                }
                ?>

                ohne 

                $pro = $_GET['pro'];
                if($pro == "1") { 

                klappt es, also liegts nicht an den verlinkungen.
                wie schaffe ich es, das ich mit dem link noch einen Wert übergebe, so das die php datei nachher weiß welche funktion sie ausführen soll?

                Kommentar


                • #9
                  Bitte für Beispielcode [php]-Tags verwenden, nicht die [phpwiki]-Tags.
                  Dass letztere kaum sinnvoll sein können an so einer Stelle, muss einem doch eigentlich selber auffallen, wenn man sich das Posting mal per Vorschaufunktion anschaut ...

                  Also, bitte Posting anpassen!

                  wie schaffe ich es, das ich mit dem link noch einen Wert übergebe, so das die php datei nachher weiß welche funktion sie ausführen soll?
                  In dem du den Parameter einfach per GET im Querystring übergibst.

                  Wenn dir das nichts sagt: Lerne Grundlagen
                  [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

                  Kommentar


                  • #10
                    ich übergebe den Wert doch:

                    PHP-Code:
                    <a href="#?pro=1" id="link">Profil</a
                    und hole ihn an anderer Stelle wieder:

                    PHP-Code:
                    $pro $_GET['pro']; 

                    Kommentar


                    • #11
                      Zitat von Verino Beitrag anzeigen
                      ich übergebe den Wert doch:

                      PHP-Code:
                      <a href="#?pro=1" id="link">Profil</a
                      Das ist nicht Bestandteil des Querystrings, sondern bereits der Hash-Part der Adresse („Anker“).

                      Wenn daraus ein GET-Parameter werden soll, muss dein JavaScript das vor der Anfrage irgendwie umsetzen - tut es das?
                      [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

                      Kommentar


                      • #12
                        ich habe bis jetzt weiter probiert und auch einiges nach gelesen.

                        Selbst mit:

                        PHP-Code:

                        echo $_SERVER['QUERY_STRING'];
                        echo 
                        $_POST['pro'];
                        echo 
                        $_GET['pro'];

                        $pro $_GET['pro'];
                        if(
                        $pro == "1") { 
                            echo 
                        "Dies ist der übergebene Text";

                        Ich wollte mit dem echo nur sehen welche infos ankommen.
                        In der php datei zeigt er mir nichts an, also ist dieser schritt in meinen Augen nicht die lösung für das Problem.

                        hier nochmal der link der das script startet:

                        PHP-Code:
                        Variante 1:
                        <
                        a href="home?pro=1" id="link">Profil</a>
                        variante 2:
                        <
                        a href="#?pro=1" id="link">Profil</a

                        Kommentar


                        • #13
                          @chris:

                          ich hatte deinen Beitrag erst gelesen nachdem ich meinen abgesendet habe, ich wurde ausgelogged und als ich auf antworten ging loggte ich mich ein und so hab ich ihn übersehen.

                          Zu deinem Beitrag: es wird nicht umgewandelt, dies übersteigt wirklich meine Kompetenz da ich noch blutiger anfänger bin mit ajax und javascript, aber durch deine tutoriels werd ich sicher bald auch das lösen können.

                          Kommentar


                          • #14
                            PHP-Code:
                            xmlhttp.open("GET"'ink/profil.php'true); 
                            ...
                            "Dummheit redet viel..Klugheit denkt und schweigt.." [Amgervinus]

                            Kommentar


                            • #15
                              das bringt mich an der stelle aber nicht weiter, da es mehrere Links sind die dieses script nutzen.


                              PHP-Code:
                                      <a href="home?pro=1" id="link">Profil</a>
                                      <
                              a href="home?pro=2" id="link">Fotos</a>
                                      <
                              a href="home?pro=3" id="link">Videos</a>
                                      <
                              a href="home?pro=4" id="link">Freunde</a
                              bei allen links wird die selbe .js datei gestartet und ich muss je nach gestartetem link einen anderen wert für por übermitteln damit ich sie später im php script unterscheiden kann welcher link genutzt wurde.

                              lg

                              Kommentar

                              Lädt...
                              X