In PHP eine JS-Funktion aufrufen

chuvak

Erfahrenes Mitglied
Ich habe eine TPL-Datei (PHP-Template-Klasse), eine PHP-Datei und eine JavaScript-Datei. Sie alle werden dann in der TPL-Datei verknüpft.
Ich möchte durch ein Formular von der TPL an die PHP eine Variable übergeben. Wenn diese True ist, soll eine bestimmte Funktion aus der JS ausgeführt werden.

Das ist der Ausschnitt aus der TPL-Datei:
Code:
 <input type="hidden" name="ja" value="BLA" />

Und das der dazugehörige Ausschnitt aus der PHP-Datei:

PHP:
$erg=$_POST["ja"];
if ($erg=="BLA"){
echo "<script type='text/javascript' src='/js/tabs.js'>verstecken()</script>";}
if ($erg!="BLA"){   
 echo "das ergebnis ist NICHT bla";}

Wenn die Variable nicht übergeben wird, erscheint "das ergebnis ist NICHT bla". Dies ist richtig, wenn die Variable jedoch übergeben wird, passiert einfach nichts.
Rufe ich die JS-Funktion falsch auf?

Danke!
 
Hi
schonmal so probiert ?
PHP:
$erg=$_POST["ja"];
if ($erg == "BLA")
{
echo "<script type='text/javascript' src='/js/tabs.js'>verstecken()</script>"
}
else
{   
echo "das ergebnis ist NICHT bla";
}

Soweit ich weiß muss man doch backslashes verwenden, korigiere mich wenn ich da falsch liege !!

liegt denn die js datei im gleichen Ordner wie die tpl dateien


Mfg. Oliver
 
Ist es für gewöhnlich nicht so, das man entweder eine Datei einbindet:
Code:
<script type='text/javascript' src='/js/tabs.js'></script>
oder das javascript (den Quelltext)
Code:
<script type='text/javascript'>
function hallo(){
  alert("hallo");
}
</script>
deine version macht den eindruck das die datei js/tabs.js die funktion beinhaltet die aufgerufen werden soll..
Code:
<script type='text/javascript' src='/js/tabs.js'></script>
<script type='text/javascript'>
verstecken();
</script>

Ein kleiner Nachtrag: Firebug installieren und schauen ob der fehler nicht in der Javascriptdatei vorliegt....
 
Zuletzt bearbeitet:
Das ist ja so ähnlich, wie ich es schon hatte. Funktioniert also wieder nicht.
Nein, die Dateien liegen alle in verschiedenen Ordnern, aber das ist nicht das Problem.

Ich denke, es ist irgendwo ein kleiner Denkfehler. So klein, dass man ihn schon fast übersieht...
 
Hi,

wie sieht denn die JS-Datei aus? Ist die Funktion "verstecken" dort einfach nur deklariert?

Dann vielleicht so:

PHP:
$erg=$_POST["ja"];
if ($erg == "BLA")
{
echo "<script type='text/javascript' src='/js/tabs.js' />";
echo "<script type='text/javascript'>verstecken();</script>";
}
else
{   
echo "das ergebnis ist NICHT bla";
}

LG
 
Das ist der JavaScript Code:

Code:
function verstecken(){
 if(document.getElementById)
   document.getElementById("inhalt1").style.display = "none";
   
    if(document.getElementById)
   document.getElementById("inhalt2").style.display = "";
}

Der soll das DIV-Tag "inhalt1" verstecken und "inhalt2" anzeigen.
 
Hi,

Und? Hast Du mein Beispiel ausprobiert? Es reicht ja nicht, die Funktion zu deklarieren, Du musst die auch aufrufen. Ausserdem musst Du drauf achten, an welcher Stelle im Dokument Du das einbindest (hinter die entsprechenden Divs).

LG
 
Zurück