Text dynamisch ausgeben

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

  • Text dynamisch ausgeben

    Hallo Ihr da draußen vor den Monitoren
    habe mal wieder ein JS Problem und hoffe auf etwas Hilfe ...

    Ich habe eine Bildergallerie in dem sich ein Div mit display block eine art Popup öffnet. In dem übergebe ich über JS eine Bildid an ein PHP Script und diese Zeigt mir auch dann das richtige Bild an.

    Nun muss ich aber neben dem Bild, noch das Copyright von dem jeweiligen User mit ausgeben. Sprich das ganze müsste genauso dynamisch sein.


    Mein erstes Ansatz sieht in etwa so aus ...
    Code:
    function div_show(bildid) {
    document.getElementById('copyright').innerHTML = motive_text.php+bildid;
    }
    Im template selber steht natürlich <label id="copyright"></label>

    in der motive_text.php steht zum testen ersteinmal
    PHP-Code:
    <?
    header ("Content-Type: text/plain");
    echo "bla";
    ?>
    Es kommt aber absolut keine Ausgabe und so recht weiß ich nicht wo das Problem liegt. Wenn ich
    Code:
    document.getElementById('copyright').innerHTML = 'motive_text.php'+bildid;
    kommt wenigstens eine ausgabe wie zB motive_text.php10

  • #2
    Oo?

    Falsches verständnis von Ajax?

    Ps. google mal nach AJAX und PHP vieleicht hilft dir das weiter.
    Bitte Beachten.
    Foren-Regeln
    Danke

    Kommentar


    • #3
      Und wie wär's damit?
      Code:
      document.getElementById('copyright').innerHTML = 'motive_text.php?id='+bildid;
      Ich glaube aber kaum, dass es ausreicht diese URL einfach in den Quellcode zu schreiben. Du müsstest schon einen Request auf diese URL ausführen.
      AJAX kann helfen...

      Gruss

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

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        Das war ja schnell geantwortet ...

        also wenn ich
        Code:
        document.getElementById('copyright').innerHTML = 'textausgabe';
        schreibe, kommt unter dem Bild ja schon meine Ausgabe.

        So weit kann ich nicht vom richtigen Lösung entfernt liegen ... ?

        Natürlich muss es richtig heißen ... 'motive_text.php?id='+bildid; war auch nur kurz dahin geschrieben und nicht überlegt

        Aber der Text soll ja dynamisch sein, also einfach was in der PHP Datei steht soll JS wieder ausgeben.

        Ist es evtl. ein fehler in der PHP Datei ?


        PHP-Code:
        <?
        header ("Content-Type: text/plain");
        echo "bla";
        ?>

        Kommentar


        • #5
          So weit kann ich nicht vom richtigen Lösung entfernt liegen ... ?
          Das ist relativ. Wenn du jetzt - wie bereits gesagt - es noch schaffst, den Text durch eine variable zu ersetzen, die du vorher mit der Rückgabe eines AJAX-Request füllst, dann bist du schon fast da.

          Natürlich muss es richtig heißen ... 'motive_text.php?id='+bildid; war auch nur kurz dahin geschrieben und nicht überlegt
          Das ändert nichts daran, dass du nur einen String zuweist. Die ganze Dynamik fehlt noch.

          Ist es evtl. ein fehler in der PHP Datei ?
          Bei nem echo kannst du nicht viel falsch machen.

          Halt dich an die Tipps meiner Vorposter und informier dich über AJAX.

          Kommentar


          • #6
            Also ich bin noch immer auf der Suche nach einer Lösung und ehrlich gesagt, komme ich nicht weiter. Vielleicht liegt es auch einfach daran, dass ich nach falschen sachen bei google suche.

            Also die Dynamik ist doch schon da ...

            Code:
             document.getElementById('copyright').innerHTML = 'motive_text.php?id='+bildid;
            das Script ist etwas länger und wenn ich das so lasse, bekomme ich bei +bildid immer die ID von dem jeweiligen Bild schon ausgegeben.

            Eigentlich will ich doch nur in der motive_text.php diese ID übernehmen mit $_GET'[id'] das Copyright des Users aus der DB holen und ausgeben. Die PHP Geschichte ist auch weniger mein Problem, eher das JS es einfach nur nicht ausgiebt. Liegt es evtl. an innerHTML ?

            Versteh auch nicht was Ajax damit zu tun hat ... ?!

            Kommentar


            • #7
              Informier dich doch bitte darüber wie man einen AJAX-Request absetzt und auswertet.

              Versteh auch nicht was Ajax damit zu tun hat ... ?!
              Ja, ich glaube das ist dein Problem, dass du nicht verstehst, dass AJAX was damit zu tun hat. Um die werte ins JS zu holen musst du zunächst mittels JS einen HTTP-Request an deine Seite senden, diesen wertest du dann aus und kannst danach mit den Werten weiterarbeiten.

              Vielleicht ists jetzt deutlich?

              Kommentar


              • #8
                Danke TobiaZ,
                deine Antwort hat mir doch schon etwas weitergeholfen und ich konnte auch einige Tutorials finden.

                Meine zusammengebaute Lösung schaut nun wie folgt aus:
                Code:
                	function div_show(bildid) {
                	  document.getElementById('vorschau').style.display = 'block';
                	  document.images["bild"].src = 'motive.php?id='+bildid;
                	  document.getElementById('link').href = 'motive.html?id='+bildid;
                	  var myAjax = new Ajax.Request("./motive_text.php",{ method: 'get', onComplete: CopyrightBild } );
                	}
                
                	function CopyrightBild(originalRequest) {
                	  document.getElementById('copyright').innerHTML = originalRequest.responseText;
                	}
                Mein Problem ist nun, es passiert garnichts ......

                motive_text.php liegt auch im richtigen Ordner, hast du dazu eine Idee ?

                Kommentar


                • #9
                  Firefox + Firebug benutzen und die Fehlermeldung posten. Oder den Link zu Seite.

                  Kommentar


                  • #10
                    Ich code ja local ...

                    Aber wußte garnicht, dass es soetwas gibt ...

                    Der fehler lautet Ajax is not defined

                    Wenn ich auf den Link anklicke, wird diese zeile makiert:
                    var myAjax = new Ajax.Request("motive_text.php",{ method: 'get', onComplete: CopyrightBild } );

                    Edit:
                    Habe nun
                    Code:
                    var myAjax = new myAjax.Request("motive_text.php",{ method: 'get', onComplete: CopyrightBild } );
                    geschrieben und es kommt nun:
                    myAjax has no properties
                    Zuletzt geändert von Mundgeruch; 20.05.2008, 12:45.

                    Kommentar


                    • #11
                      das sieht nach prototype.js aus :P vorher auch die
                      Code:
                      <script type="text/javascript" src="prototype.js" ></script>
                      eingebunden
                      Zuletzt geändert von Wyveres; 20.05.2008, 16:56.
                      Bitte Beachten.
                      Foren-Regeln
                      Danke

                      Kommentar


                      • #12
                        @Wyveres
                        du hast ja sooooo recht

                        Habe garnicht weiter oben gelesen und nur auf den Code geachtet ...

                        Kommentar

                        Lädt...
                        X