WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Wo is da der Fehler?? (http://www.wcm.at/forum/showthread.php?t=103503)

Wacky 24.07.2003 08:52

Wo is da der Fehler??
 
So, ich habe folgende Probleme.

1. Wie schreibe ich die JavaScript Variable "next" richtig in die URL

und

2. jedesmal wenn ich dieses Script aufrufe erhalte ich die Fehlermeldung die ich im Anhang beigefügt habe.

Dieses Problem quält mich jetzt schon Stundenlange und irgendwie check ich in Fehler nicht.

Achja, fragts mich bitte ned warum ich in einem PHP Script anfange wie wild JavaScript zu schreiben. Das zu erklären wäre zu kompliziert. Mir gefällt es auch nicht, aber was soll ich machen.



---------1. Script-------

<?PHP

$next = 0;
echo "

<SCRIPT LANGUAGE = \"JavaScript\">
var breit = window.innerWidth;
var next = (breit - 380)/$dimeins;";

echo "self.location.href='showLayers2?lang=$lang&sel=$s el&next=??next??;";

echo "
</SCRIPT>";

?>


---------aufgerufenes Script (showLayers2.php)-----------

<?PHP
echo "</SCRIPT LANGUAGE = \"JavaScript\">";

for($i=0, $side=190; $i<3; $i++, $side+=$next)
{
$subanz = count($submenue[$i]);

for($j=0, $top=0; $j<$subanz; $j++, $top+=30)
{

echo "document.write (\"<div id='#schrift' style='position:absolute; width:200px; height:30px; z-index:1; left: $side; top: $top;'> hallo test lalala </div>\");";
}
}

echo "
</SCRIPT>";

?>

---------------

Achja, alle Variablen von denen nicht ersichtlich ist von wo sie herkommen existieren, weil ich das Script mit require einbinde. Nur im 2. Script gibts ein paar Variblen nicht, das stört mich gerade nicht, weil ich sowieso noch nicht weis was da ned passt.

Und wenn diese Fragen ein bisschen doof klingen, ich programmiere erst seit gestern JavaScript *gg*.

mfg
Wacky

Wacky 24.07.2003 08:53

Sorry, Anhang vergessen... ;-)

jak 24.07.2003 10:17

1.) Tritt der Fehler beim ersten oder beim zweiten Script auf?
2.) Wo ist Zeile 21?
3.) Vielleicht funktioniert es mit next nicht, weil du versehentlich ein reserviertes Wort erwischt hast. Probier es mal mit einem anderen Variablennamen.
4.)
Zitat:

Achja, fragts mich bitte ned warum ich in einem PHP Script anfange wie wild JavaScript zu schreiben. Das zu erklären wäre zu kompliziert. Mir gefällt es auch nicht, aber was soll ich machen.
Doch, ich frag. Weil vielleicht gehts a) ohne PHP oder b) ohne JS oder c) Vielleicht kann man den Code irgendwie trennen.


Jak

Wacky 24.07.2003 11:19

geänderte scripten
 
So, ich habe die Scriptn inzwischen wieder ein bisschen modifiziert.

Fehler sind in beiden Scripten. Bei Script Nummer 1 geht das Href nicht und beim 2. ist eine ziemlich komische Ausgabe (Die Ausgabe inkl. übersetzter Source sind im Anhang als JPG).

Kann ich das 2. Script irgendwie aufrufen ohne eine andere URL aufrufen zu müsen? (weil das ja ein Menüsystem werden soll und irgendwie schaut das blöd aus wenn jedesmal wenn das Menü aufgerufen wird die gerade aktive Seite weg ist).

So, die geränderten Scripten:

---- Script 1 -----

<style type="text/css">
#schrift
{
font:14pt Arial;
color:#CEE6BD;
padding:4px;
}
</style>



<?PHP

require 'getMenue.php';

echo "

<SCRIPT LANGUAGE = \"JavaScript\">
var breit = screen.availWidth;
var weiter = (breit - 380)/$dimeins;
";


echo "self.location.href=\"192.168.10.11/functions/showLayers2?lang=$lang&sel=$sel&next=weiter\";";

echo "
</SCRIPT>";

?>


------- Script 2 -------

<?PHP
echo "</SCRIPT>";

require 'getMenue.php';

$anzahl = count($pos);

$submenue = array(array());
$subscript = array(array());

$save = 0;

for($l=0, $m=0;$l<$anzahl;$l++,$m++)
{
$i=substr($pos[$l], 0, 1);
$j=substr($pos[$l], 1, 1);
$k=substr($pos[$l], 2, 1);

if($i != $save)
{
$m=0;
$save = $i;
}

$submenue[$i][$m] = $langstruct[$i][$j][$k];
}


for($i=0, $side=190; $i<3; $i++, $side+=$next)
{
$subanz = count($submenue[$i]);

for($j=0, $top=0; $j<$subanz; $j++, $top+=30)
{
echo "document.write (\"<div id='#schrift' style='position:absolute; width:200px; height:30px; z-index:1; left: $side; top: $top;'>".$submenue[$i][$j]."</div>\");";
}
}

echo "
</SCRIPT>";

?>

-------------

Also, ich brauche PHP weil ich einen MySQL Datenbankzugriff habe (getMenue.php) und JavaScript weil ich für das dynamische Menü die Fenstergröße brauche.

Und irgendwie is die Ausgabe eigenartig, wobei der Source dazu eigentlich so aussieht wie ich mir das vorstelle.

jak 24.07.2003 11:28

Schau dir mal den Quelltext im Bild an:
Zeile 1:</script>, dann jede Menge JavaScript, dann wieder </script>.

Das erste </script> sollte ein <script> sein.

Nebenbei: Wenn du die Style definition entweder in den header schreibst oder in eine .css Datei wird das ganze ein bischen übersichtlicher.

Jak

Wacky 24.07.2003 11:34

Ok danke, da hätte ich ja selbst auch drauf kommen können, das 2. script wäre damit Fehlerfrei..

Im ersten Script habe ich ja einen link auf das 2. gelegt. Die 2 Scripts befinden sich im selben Ordner.

der name vom 2. ist showLayers2.php und bekommt eben die im Source angeführten Parameter.

zumindest sollte das so sein. Aber irgendwie geht das nicht so wie ich mir das vorstelle...

kann ich das 2. Script irgendwie aufrufen so dass ich es direkt in den Source vom 1. einbinden kann, jedoch die Parameter in der URL bräuchte ich trotzdem irgendwie. (ich muss nämlich die JavaScript variable in eine PHP Variable bekommen und ich wüsstesonst keine Lösung wie ich das machen soll)

jak 24.07.2003 11:46

Ich kenn mich mit php leider nicht aus (möchts aber mal lernen :))
Vielleicht hilft dir eine dieser Seiten weiter:
http://forums.devshed.com/archive/1/2002/05/2/35594
http://perl.about.com/library/weekly/aa121002a.htm

Jak

jak 24.07.2003 12:11

Probier mal folgendes:
Code:

---- Script 1 -----
...
<SCRIPT LANGUAGE = \"JavaScript\">
var breit = screen.availWidth;
var weiter = (breit - 380)/$dimeins;
";


echo "document.write(\"self.location.href=\"
(das musst du glaub ich doppelt maskieren)
192.168.10.11/functions/showLayers2?
lang=$lang&sel=$sel&next=\"(auch dopelt maskieren)+weiter\");";

echo "
</SCRIPT>";
?>

Ich glaube, Php "weis" einfach nicht, das du die JS Variable meinst und schreibt einfach den Text "weiter" hin.
Vielleicht gehts auch, wenn man einfache Anführungszeichen verwendet, also:
echo "document.write('self.location.href=\"192.168.10.1 1/functions/showLayers2?lang=$lang&sel=$sel&next='+weiter\");" ;


Jak


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:58 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag