Antworten auf deine Fragen:
Neues Thema erstellen

Variabeln übergabe

darthfly

Nicht mehr ganz neu hier

ich weiß nicht mehr weiter.
hab ich schon mal erwähnt, das ich es hasse javascript und PHP parallel benutzen zu müssen ohne das es wirklich funktioniert?
Folgendes Problem:
auf der ersten seite steht folgendes.
PHP:
<frameset rows="90px,*" frameborder="1" border="1" framespacing="0">
  <frame name="oben" src="counter.php?id="<?php echo $id ?>">
  <frame name="unten" src="<?php echo $bannerpfad;?>">
  <noframes>
   <body>
   </body>
  </noframes>
</frameset>
im frame oben wird die datei counter.php?id=1 z.B aufgerufen. Die Datei counter ruft einen Countdown auf.
PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title></title>
<meta name="author" content="DarthFly">
<meta name="editor" content="html-editor phase 5">
<script language="JavaScript1.5" type="text/javascript">
window.onerror = Fehlerbehandlung;

function Fehlerbehandlung (Nachricht, Datei, Zeile) {
  Fehler = "Fehlermeldung:\n" + Nachricht + "\n" + Datei + "\n" + Zeile;
  zeigeFehler();
  return true;
}

function zeigeFehler () {
  alert(Fehler);
}

var end = new Date();

function toSt2(n) {
  var s = '';
  if (n < 10) {
   s += '0';
  }
  return (s + n).toString();
}
function countdown() {

 var d = new Date();
 var count = Math.floor(end.getTime()+10000 - d.getTime());
 if (count > 0) {
 count = Math.floor(count/1000);
  var seconds = toSt2(count%60); count = Math.floor(count/60);
  document.getElementById('c2').innerHTML = seconds
  setTimeout('countdown()', 100);
 }
 else {
  document.getElementById('c3').innerHTML = self.location.href="counter2.php?i=1";
 }
}
 var cp=document.getElementById("feld").value;
       document.write(cp);
</script>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000" onload=countdown()>>
<div style="text-align: center;">
<span id="c3">
 <span id="c1" style="font: bold 30px arial; color: #800000;"></span><br>
 <span id="c2" style="font: bold 25px arial; color: #000000;">;</span><br>
 <?php $id=$_GET['id'];
 echo $id;
 ?>
<form name="eingabe" action="">
<input type="text" name="feldeingabe" id="feld" value="<?php echo $id ?>">
</form>
</span>
</div>
</body>
</html>
Die Datei wird wie schon erwähnt mit counter.php?id=1 z.B aufgerufen. Die zahl variert. Normalerweise müßte php $id=$_GET['id']; die Zahl ergeben. Diese Zahl möchte ich, nachdem ein Countdown abgelaufen ist an die Datei couter2 weitergeben. nur irgendwie klappt das gar nicht. hab schon alles probiert und weiß absolut nicht mehr weiter.Der Countdown klappt nur die Übergabe der Variabel will nicht funktionieren.
 

Tr3icio

Nicht mehr ganz neu hier

AW: Variabeln übergabe

1. Ein Tipp: HTML und PHP sollten immer getrennt werden.
2. language="JavaScript1.5" <-- veraltet. language="" an sich ist veraltet und gehört in den Müll. Browser nutzen immer automatisch die neuste JS Version und so ist es auch gut.
3. setTimeout('countdown()', 100); ??? setTimeout(countdown, 100); wäre schneller und sauberer.
4. Wird denn die ID im Frame-src überhaupt richtig angegeben?
5. bgcolor, link, ... sind sinnlos. Nimm CSS. Style direkt im HTML ohne CSS zu definieren ist eher so Jahr 2000 Stil.
6.

Code:
function toSt2(n) {
  var s = '';
  if (n < 10) {
   s += '0';
  }
  return (s + n).toString(); // <!-- Unnötig. Wenn etwas mit einem String zusammen kommt, ist das Ergebnis immer ein String.
}

Ist so viel simpler:

Code:
function toSt2(n) {
  return (n < 10 ? '0' : '') + n;
}

7. "hab ich schon mal erwähnt, das ich es hasse javascript und PHP parallel benutzen zu "
-- Dann nimm als Backend doch Javascript? Läuft schneller und man kann Code doppelt verwenden. Gibt viele JS Backends. (node.js, RingoJS, vert.x)

So nur ein paar Punkte zum verbessern.
 

SchneewittchenX

Aktives Mitglied

AW: Variabeln übergabe

5. bgcolor, link, ... sind sinnlos. Nimm CSS. Style direkt im HTML ohne CSS zu definieren ist eher so Jahr 2000 Stil.
nicht nur das, erst Recht sind Frames völlig überholt,
Mit DIV und Stylesheet benötigt man die auch nicht mehr.
Anstatt 3 HTML-Seiten hat man nur noch eine. Die Vor- und Nachteile findest Du hier: http://www.subotnik.net/html/frames.html oder http://vsis-www.informatik.uni-hamburg.de/ergonomie/frames.html
Ab HTML5 werden Frames auch nicht mehr unterstützt.
 

Duddle

Posting-Frequenz: 14µHz

AW: Variabeln übergabe

Fang mit dem kleinen Problem an, dann arbeite dich nach oben.

Das heißt, simuliere erst die Situation wenn der Countdown beendet ist, um die Fehlerquelle des Countdowns selbst zu beseitigen. Sobald das funktioniert, bau ihn mit festem Parameter wieder ein und such die entstehenden Fehler. Sobald das funktioniert, bau den PHP-Parameter ein und überprüfe dann die Testfälle. Erst am Schluß baust du das Ganze in ein frameset.

Ich sehe mehrere Unsauberkeiten, ob die aber zu Fehlern führen solltest du mit FireBug selbst rausfinden können.



Duddle
 

darthfly

Nicht mehr ganz neu hier

AW: Variabeln übergabe

also das mit den frames ist Absicht. ich schreib ne Art paidmailer, wobei in diesem Fall es der Bannerklick ist, denn ich programmieren will. Heißt: im oberen Frame soll der Countdown ablaufen und nach ablauf soll eine sql db aktualisiert werden, während im unterem Frame die anzuzeigende Webseite sein soll. @ Duddle: Der Coutdown funktioniert tadellos. Und zum Thema NUR javascript als Backend zu benutzen. Wenn es ne Möglichkeit gibt, per javascript sql datenbanken anzusprechen, dann gerne, hab bisher aber nix gefunden dazu.
 

Talirion

People Fotograf

PSD Beta Team
AW: Variabeln übergabe

Wie schon erwähnt solltest du dir überlegen es mal ohne Frame zu versuchen, du kannst deinen Inhalt auch dynamisch in einen div laden, wie schon geschrieben sind Frames am "aussterben".
 

darthfly

Nicht mehr ganz neu hier

AW: Variabeln übergabe

also folgendes klappt nicht:
die Datei counter mit mit dem parameter id also mit counter.php?id=1 z.B aufgerufen.
im code steht dann das:
PHP:
<?php $id=$_GET['id'];
 echo $id;
 ?>
<form name="eingabe" action="">
<input type="text" name="feldeingabe" id="feld" value="<?php echo $id ?>">
</form>
Eigentlich müßte in dem Eingabefeld die zahl 1 stehen, doch da steht GAR NIX.
Wenn ich die Datei ohne frame aufrufe klappt das zwar , und die 1 steht im Eingabefeld nur wenn ich dann mit
PHP:
var cp=document.getElementById("feld").value;
document.getElementById('c3').innerHTML = self.location.href="counter2.php?id=cp.value";
übergeben will, wird die datei folgendermaßen aufgerufen:
"http://wwwxxx.de/counter2.php?i=cp"
obwohl da stehen sollte:
"http://www.xxx.de/counter2.php?id=1"
 

darthfly

Nicht mehr ganz neu hier

AW: Variabeln übergabe

ich hab den code mal abgeändert:
PHP:
var cp=document.getElementById("feld").value;
alert(cp);
document.getElementById('c3').innerHTML = self.location.href="counter2.php?id=cp.value";
Und erhalte als Ergebniss ein Leeres Betätigungsfeld: zu deutsch. der alert gibt ein leeres Ergebniss aus.
Wie kann ich mit div den Inhalt einer 2.webseite innerhalb meiner eigenen Webseite ausgeben und zwar beide Seiten gleichzeitig?
 

darthfly

Nicht mehr ganz neu hier

AW: Variabeln übergabe

ich brauche aber trotzdem php UND javascript oder gibt es eine javascript Möglichkeit bei der man aus counter.php?id=1 den Wert von id=1 auslesen kann?
 

darthfly

Nicht mehr ganz neu hier

AW: Variabeln übergabe

den ersten fehler hab ich mittlerweile selber entdeckt und muss sagen "OH Gott war ich blind". Was jönnte hier falsch sein?
PHP:
<frame name="oben" src="counter.php?id="<?php echo $id ?>">
Ganz einfach:so ist es richtig:
PHP:
src="Pfad"
und nicht
PHP:
src="Pfad"php Teil"
hab das jetzt so gelöst:
PHP:
$pfad="counter.php?id=".$id
<iframe src="<?php echo $pfad; ?>" width="100%" height="100" name="counter">
nur das 2 Problem besteht noch.
 

Duddle

Posting-Frequenz: 14µHz

AW: Variabeln übergabe

Was heißt für dich "aus counter.php?id=1 den Wert von id=1" auslesen zu können? Wenn du weißt dass id schon 1 ist, musst du ja nichts mehr auslesen.

Zweitens: diese Zeile
HTML:
document.getElementById('c3').innerHTML = self.location.href="counter2.php?id=cp.value";
ist schlichtweg falsch.
Du möchtest die URL counter2.php mit dem Wert von cp aufrufen. Die Variable cp ist aber schon der Wert des Elementes lt.
HTML:
 var cp=document.getElementById("feld").value;
Den Wert eines Wertes holen zu wollen macht keinen Sinn.
Zweitens möchtest du diesen Wert an die URL anhängen, übergibst aber nur die Zeichenkette "cp.value". Wie soll er denn unterscheiden, ob du die Zeichenkette oder die Bedeutung der Zeichenkette ("lies den Wert aus cp und setze ihn dort ein") meinst? Nur indem du die Unterscheidung selbst festlegst:
HTML:
self.location.href="counter2.php?id="+cp.value;
(bzw. ohne value, abhängig vom Code vorher)
Drittens möchtest du diesen Wert gleichzeitig in innerHTML vom Element mit id c3 schreiben. Oder zumindest steht das so im Code. Deine Intention war sicherlich, den Quellcode der Seite "counter2.php?id=38" o.ä. in innerHTML zu schreiben. Das funktioniert so nicht, sondern nur mit einer asynchronen Anfrage wie AJAX es dir gibt.

Edit (ja, es gibt nen Bearbeiten-Knopf, auch für dich): um ein anderes Dokument auf deiner Seite anzuzeigen musst du es entweder per AJAX-Anfrage laden oder es in einem iframe anzeigen (dessen src du ja beliebig ändern kannst).

Duddle
 
Zuletzt bearbeitet:

darthfly

Nicht mehr ganz neu hier

AW: Variabeln übergabe

mit
PHP:
self.location.href="counter2.php?id="+cp.value;
erhalte ich als url:/counter2.php?id=undefined
 

Duddle

Posting-Frequenz: 14µHz

AW: Variabeln übergabe

Also ist cp.value nicht definiert. Das kann sehr viele Ursachen haben, abhängig von der Definition von cp.


Duddle
 

darthfly

Nicht mehr ganz neu hier

AW: Variabeln übergabe

hab das problem anders gelöst, mit einer Sache, die ich schon probiert hatte, da aber nicht funktioniert hat.
PHP:
$id=$_GET['id'];
das klappte bei counter.php ja mittlerweile schon.
den wert übergebe ich an eine Session Variabel, ich arbeite ja eh mit Session.
PHP:
$id=$_GET['id'];
if ($id!="")
{
$_SESSION['bannerid']=$id;

}
die seite counter2 ruf ich dann so auf:
PHP:
document.getElementById('c3').innerHTML = self.location.href="counter2.php";
und die SessionVariabel kann ich in counter2.php mühelos auslesen und weiterverarbeiten.
problem endlich gelöst, aber trotzdem danke für den Versuch der Hilfe.
thema kann geschlossen werden.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.620
Beiträge
1.538.374
Mitglieder
67.544
Neuestes Mitglied
janusbarman
Oben