soundofakira: Javascript - php

Hallo zusammen

Ich komme einfach nicht vorran

Ich habe ein Javascript,  in dem ein Array ausgewertet wird.

Der Inhalt des Arrays soll an eine php Datei geschickt werden.. verarbeitet und dann ein Ergebniss zurück kommen

eigentlich hatte ich gedacht, dass es so gehen könnte

In der Hauptseite ist die php datei eingebunden
<?php include_once"head_question.php"; ?>

Darin steht eine funktion

function url()
{
return "test";
}

wenn ich nun im Javascript an der Stelle, an der das ganze passieren soll versuche die funktion aufzurufen funktioniert es nicht

alert(url());

Wo mache ich was falsch an der Sache?

gruß
andre

  1. hi,

    denk doch erstmal, dass dein javascript mit dem php-include nix zu tun hat. kläre mal den javascript-code pur, und zwar an hand eines simplen beispiels. und dann stufenweise in richtung deines problems (stichworte ajax und json bei der übergabe von daten via javascript an ein php-skript bzw. den server).

    mfg

    tami

    1. hi,

      denk doch erstmal, dass dein javascript mit dem php-include nix zu tun hat. kläre mal den javascript-code pur, und zwar an hand eines simplen beispiels. und dann stufenweise in richtung deines problems (stichworte ajax und json bei der übergabe von daten via javascript an ein php-skript bzw. den server).

      mfg

      tami

      Also das JS ist auf einer html seite eingebaut
      von daher ist das mit dem include auch ok so

      es ist einfach nur eine for schleife, die ein array schritt für schritt ausliest

      und jetzt einfach nur array[i] <- der wert soll übergeben werden und nach der bearbeitung zurück kommen

      allerdings kriege ich den funktionsaufruf nicht hin
      momentan soll erstmal nur die funktion aufgerufen werden, die "test" als alert dann ausspuckt

      1. hi,

        Also das JS ist auf einer html seite eingebaut
        von daher ist das mit dem include auch ok so

        das include ist irrelevant für dein problem.

        es ist einfach nur eine for schleife, die ein array schritt für schritt ausliest

        und jetzt einfach nur array[i] <- der wert soll übergeben werden und nach der bearbeitung zurück kommen

        allerdings kriege ich den funktionsaufruf nicht hin
        momentan soll erstmal nur die funktion aufgerufen werden, die "test" als alert dann ausspuckt

        das hilft nix, dass du sagst, was du machen willst. du musst den quelltext zeigen. es ist _immer_ so, dass es sonst heißt: "oh sorry, ich hatte blöderweise völlig vergessen, dass ...." ...;

        arbeitest du mit irgendeinem browsertool, was dich auf fehler in deine javascript hinweist? wenn nicht, dann musst du. sonst hast du "gegen" ;-) javascript keine chance...;

        mfg

        tami

        1. Der Quelltext ist absolut irrelevant

          das ist die for schleife

            
          for(var k = 0; k<newArray.length;k++)  
          	{  
          	document.form1.Unique.value += newArray[k]+"\n";  
          	}
          

          Das der php code

          <?php  
          function url($a)  
          {  
          //mache c=  a+a;  
          	return c;  
          }  
          ?>
          

          wie müsste das jetzt aussehen, wenn ich newArray[k] an die Funktion übergeben  und dann ein Ergebniss zurück bekommen will?

          1. servus soundofakira,

            Der Quelltext ist absolut irrelevant

            Doch, er ist relevant. Wir haben nicht den gleichen Überblick wie du.

            das ist die for schleife

            for(var k = 0; k<newArray.length;k++)
            {
            document.form1.Unique.value += newArray[k]+"\n";
            }

            
            >   
            > Das der php code  
            > ~~~php
            
            <?php  
            
            > function url($a)  
            > {  
            > //mache c=  a+a;  
            > 	return c;  
            > }  
            > ?>
            
            

            Hättest du gleich deinen generierten Quellcode geschickt, hättest du deinen Fehler bemerkt.
            Ist die Funktion url() dort irgendwo definiert? Ich denke nicht, da es eine PHP-Funktion ist. Diese ist nur auf dem Server sichtbar. Nicht auf deiner Seite. Nicht im Browser. Du musst z.B. einen Ajax-Request machen, um diese Funktion aufrufen zu können. Einfach so aufrufen *funktioniert nicht*.

            der wurzelbert

            --
            "The depressing thing about tennis is that no matter how good I get, I´ll never be as good as a wall."
            1. Wie gesagt
              Es soll kein Ajax oder sonstiges mit eingebunden werden

              was gibt es denn für alternativen um mehrere werte per php zu verarbeiten?

              1. Hi,

                was gibt es denn für alternativen um mehrere werte per php zu verarbeiten?

                Das form-Element.

                ~dave

              2. hi,

                Wie gesagt
                Es soll kein Ajax oder sonstiges mit eingebunden werden

                was gibt es denn für alternativen um mehrere werte per php zu verarbeiten?

                du verstehst nach wie vor nicht, dass php html-code generiert und javascript nur innerhalb des bereits generierten codes stattfindet. deine php-funktion ist als irrelevant.

                mfg

                tami

              3. Es soll kein Ajax oder sonstiges mit eingebunden werden

                Also AJAX ist auch keine Zauberei. Das ist im Prinzip nur JS, wenn Du auf ein Framework wie jQuery verzichten willst. Nur mal so.

                was gibt es denn für alternativen um mehrere werte per php zu verarbeiten?

                Wie bereits gesagt, kannst natürlich keine php-Funktion mit JS aufrufen.

                *) kannst du die Funktion url() in JS schreiben? Du kannst (notfalls) auch das JS dynamisch durch php generieren lassen. In diese Richtung kannst sozusagen Variablen an php "übergeben".

                <script type="text/javascript">  
                  
                  var language = <?php echo $LANGUAGE ?>;  
                  
                  function getLang(){  
                    alert(language);  
                  }  
                  
                </script>
                

                Variablen von JS an php geht logisch nur mit einem weiteren Request, da php auf dem Server läuft und schon ausgeführt wurde, wenn JS läuft, welches beim User ausgeführt wird.

                Dieser weitere Request kann im Hintergrund mit AJAX geschehen. Rückgabewerte werden in AJAX mit der callback-Funktion verarbeitet. Rückgabewerte können als Text, JSON, XML,... gesendet.

                Cheers,
                Baba

                1. hi,

                  Es soll kein Ajax oder sonstiges mit eingebunden werden

                  Also AJAX ist auch keine Zauberei. Das ist im Prinzip nur JS, wenn Du auf ein Framework wie jQuery verzichten willst. Nur mal so.

                  http://www.javascriptkit.com/jsref/ajax.shtml

                  mfg

                  tami

  2. servus soundofakira,

    Der Inhalt des Arrays soll an eine php Datei geschickt werden.. verarbeitet und dann ein Ergebniss zurück kommen

    Schon was von Ajax gehört? Mit jQuery kann man sehr leicht einen Request machen.

    eigentlich hatte ich gedacht, dass es so gehen könnte

    In der Hauptseite ist die php datei eingebunden
    <?php include_once"head_question.php"; ?>

    Darin steht eine funktion

    function url()
    {
    return "test";
    }

    Soll das eine PHP-Funktion sein? Diese dürfte in deinem Dokument-Quelltext nicht auftauchen.

    wenn ich nun im Javascript an der Stelle, an der das ganze passieren soll versuche die funktion aufzurufen funktioniert es nicht

    alert(url());

    Wo mache ich was falsch an der Sache?

    PHP läuft auf dem Server. Du musst eine Anfrage an den Server schicken. Was im Browser passiert, ist PHP schlicht *wumpe*.

    der wurzelbert

    --
    "The depressing thing about tennis is that no matter how good I get, I´ll never be as good as a wall."
    1. servus soundofakira,

      Der Inhalt des Arrays soll an eine php Datei geschickt werden.. verarbeitet und dann ein Ergebniss zurück kommen

      Schon was von Ajax gehört? Mit jQuery kann man sehr leicht einen Request machen.

      eigentlich hatte ich gedacht, dass es so gehen könnte

      In der Hauptseite ist die php datei eingebunden
      <?php include_once"head_question.php"; ?>

      Darin steht eine funktion

      function url()
      {
      return "test";
      }

      Soll das eine PHP-Funktion sein? Diese dürfte in deinem Dokument-Quelltext nicht auftauchen.

      wenn ich nun im Javascript an der Stelle, an der das ganze passieren soll versuche die funktion aufzurufen funktioniert es nicht

      alert(url());

      Wo mache ich was falsch an der Sache?

      PHP läuft auf dem Server. Du musst eine Anfrage an den Server schicken. Was im Browser passiert, ist PHP schlicht *wumpe*.

      der wurzelbert

      Es soll bewusst ohne jquery oder so laufen

      Nur Javascript und PHP
      Ich verzweifel schon seit einigen stunden an dem problem

      Das ganze ist auche eine function und die steht in der .php Datei
      Beide Dateien liegen im selben Verzeichnis auf dem server

  3. Hi,

    ich habe das Gefühlt dir ist nicht ganz klar wie der Browser mit dem Server kommuniziert und wo hier die Trennung erfolgt.

    Wenn du im Browser deine Seite aufrufst wird ein Request an den Server geschickt.

    Der führt ggf. PHP-Code aus (_keinen_ Javascript-Code, Ausnahme) und liefert das so Zusammengebaute Dokument zurück.
    Was hier genau zurück geliefert wird kannst du sehen, wenn du dir den Quelltext im Browser anzeigen lässt.

    Der Browser rendert dann das HTML-Dokument, lädt ggf. weitere Resourcen nach und führt Javascript-Code aus (_keinen_ PHP-Code).

    Wenn du dir den vom Server zurückgelieferten Code anschaust steht vermutlich an der Stelle wo du den Inhalt von <?php include_once"head_question.php"; ?> erwartest gar nichts.
    Oder?

    Deshalb ist es bei einem Client-Seitigem Problemen wichtig, den Code anzuschauen, den der Client hat.
    Bei einem Server-Seitigen Problem den Code, den der Server hat.

    Lösungsansatz für dein Problem ist dann AJAX.

    ~dave