• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Frage Quellcode falsch

No Life

Neues Mitglied
Kann mir jemand sagen worin bei diesem Quellcode der Fehler liegt? Es funktioniert einfach nicht! Ich kopiere den Quelltext hier her, da ich es scheinbar nicht hochladen kann.
Übrigens bräuchte ich eine Antwort bis Dienstag den 4.April 2017!!!
Dank schon im voraus!
Es soll übrigens ein Quiz werden mit einer Zufälligen Anordnung der Fragen und der dazugehörigen Antworten.
Mfg No Life
HTML:
<html>
<head>
<title>grgrztrsaz</title>
</head>
<body bgcolor=#FFCC99>
<table border=1>
<tr>
<th name="1.Zeile 1.Spalte" width=10%>
<th name="1.Zeile 2.Spalte" width=1%></th>
<th name="1.Zeile 3.Spalte" width=100%>
<font color=#000080 face=arial>
<center><h1>nshgnta</h1><p><h3>Quiz</h3></center>
</font>
</th>
</tr>
<tr>
<td  name="2Zeile 1Spalte" p align=center>
</td>
<td  name="2Zeile 2Spalte"></td>
<td  name="2Zeile 3Spalte"></td>
</tr>
<tr>
<td name="3Zeile 1Spalte" p valign=top align=center>
</td>
<td  name="3Zeile 2Spalte"></td>
<td  name="3Zeile 3Spalte"><center><form>
 <script language="JavaScript">

var Frage1 = x + Antworten1
var Frage2 = y + Antworten2
var Frage3 = z + Antworten3

var Antworten1 = <?php $arr =array(a,b,c,d);   shuffle($arr);      echo(implode("<br>",$arr));  ?>
var Antworten2 = <?php $arr =array(e,f,g,h);   shuffle($arr);      echo(implode("<br>",$arr));  ?>
var Antworten3 = <?php $arr =array(i,j,k,l);   shuffle($arr);      echo(implode("<br>",$arr));  ?>


var x = Math.round((Math.random()*2))

var a = Math.round((Math.random()*2))
var b = Math.round((Math.random()*2))
var c = Math.round((Math.random()*2))
var d = Math.round((Math.random()*2))

var y = Math.round((Math.random()*2))

var e = Math.round((Math.random()*2))
var f = Math.round((Math.random()*2))
var g = Math.round((Math.random()*2))
var h = Math.round((Math.random()*2))

var z = Math.round((Math.random()*2))

var i = Math.round((Math.random()*2))
var j = Math.round((Math.random()*2))
var k = Math.round((Math.random()*2))
var l = Math.round((Math.random()*2))

antworten = new Array();

antworten[a] = "<input type='button' value='Saturnos, Satyr' id='11falsch' onClick='farbe11(this.form)' style='color:black;width:230px'>"
 + "<br>";
antworten "<input type='button' value='Kronos, Titan' id='12richtig' onClick='farbe12(this.form)' style='color:black;width:230px'>"
 + "<br>" ;
antworten[c] "<input type='button' value='Saturnos, Titan' id='13richtig' onClick='farbe13(this.form)' style='color:black;width:230px'>"
 + "<br>" ;
antworten[d] "<input type='button' value='Neptun, Gott' id='14falsch' onClick='farbe14(this.form)' style='color:black;width:230px'>"
 + "<br>";

antworten[e] "<input type='button' value='In der Griechischen Religion' id='15falsch' onClick='farbe15(this.form)' style='color:black;width:230px'>"
 + "<br>";
antworten[f] "<input type='button' value='im Christentum' id='16falsch' onClick='farbe16(this.form)' style='color:black;width:230px'>"
 + "<br>" ;
antworten[g] "<input type='button' value='im Judentum' id='17falsch' onClick='farbe17(this.form)' style='color:black;width:230px'>"
 + "<br>" ;
antworten[h] "<input type='button' value='in der r\u00f6mischen Religion' id='18richtig' onClick='farbe18(this.form)' style='color:black;width:230px'>"
 + "<br>";

antworten "<input type='button' value='Seine eigenen Kinder' id='19richtig' onClick='farbe19(this.form)'  style='color:black;width:230px'>"
 + "<br>" ;
antworten[j] "<input type='button' value='alle Steine die er in die Finger bekahm' id='20falsch' onClick='farbe20(this.form)' style='color:black;width:230px'>"
 + "<br>" ;
antworten[k] "<input type='button' value='Nur seinen Sohn Neptun' id='21falsch' onClick='farbe21(this.form)' style='color:black;width:230px'>"
 + "<br>" ;
antworten[l] "<input type='button' value='Jupiter' id='22falsch' onClick='farbe22(this.form)' style='color:black;width:230px'>"
 + "<br>" ;

frage = new Array();
frage[x] = "Wer und was ist Jupiters Vater?" + "<br>";

frage[y] = "In welcher Religion wird Jupiter Jupiter genannt?" + "<br>" ;

frage[z] = "Wen/Was verschlang Saturnos?" + "<br>" ;


document.write(<?php $arr =Array(x + Antworten1,y + Antworten2,z + Antworten3; shuffle($arr) echo(implode("<br>",$arr))?>)

for(q=3; q<= 5; q = q +1) {
document.write(frage[q] + "<br>");
}
for(r=0; r<=11; r = r +1) {
document.write(antworten[r]);
}

function farbe11(form){
 document.getElementById("11falsch").style.backgroundColor="#ff0000";
}

function farbe12(form){
 document.getElementById("12richtig").style.backgroundColor="#008000";
 document.getElementById("12richtig").style.Color="#f0f0f0";
}
function farbe13(form){
 document.getElementById("13richtig").style.backgroundColor="#008000";
}
function farbe14(form){
 document.getElementById("14falsch").style.backgroundColor="#ff0000";
}
function farbe15(form){
 document.getElementById("15falsch").style.backgroundColor="#ff0000";
 }
 function farbe16(form){
 document.getElementById("16falsch").style.backgroundColor="#ff0000";
 }
function farbe17(form){
 document.getElementById("17falsch").style.backgroundColor="#ff0000";
}
function farbe18(form){
 document.getElementById("18richtig").style.backgroundColor="#008000";
}
function farbe19(form){
 document.getElementById("19richtig").style.backgroundColor="#008000";
}
 function farbe20(form){
 document.getElementById("20falsch").style.backgroundColor="#ff0000";
 }
  function farbe21(form){
 document.getElementById("21falsch").style.backgroundColor="#ff0000";
 }
  function farbe22(form){
 document.getElementById("22falsch").style.backgroundColor="#ff0000";
 }

</script>
</form></center>
</td>
</tr>
</table>
</body>
</html>
 
Werbung:
Werbung:
Noch mit [code=html][/code] ein wenig zurechtgemacht, und auf Verdacht von HTML erstmal nach JS verschoben.

In Zeile #8 fehlt </th>, in #17 u. #23 taucht im <td>-Tag zwischen den Attributen ein einsames "p" auf, aber ob das alles ist, worauf Du hinaus willst?

Wenn nicht, was weiß denn die JS-Fehlerkonsole zu vermelden?

Oder läuft gar der PHP-Code nicht? error_reporting (http://php.net/manual/de/function.error-reporting.php) hochfahren, und schauen, was vom Server zurückkommt.

Das nächste mal zu Beginn eine Fehlerbeschreibung liefern, aus der für den Leser auch klar hervorgeht, was nicht wie erwartet funktioniert :rolleyes:
 
Werbung:
Also zur Verbesserung erstmal in Worten erklärt:
Erst mal einstellen, dass wir in HTML5 programmieren (was bei dem Ansatz von dir wahrscheinlich nicht der Fall ist, aber ich mach die Verbesserung nach diesen aktuellen Standards). Das tun wir mit <!doctype html>.
Dann noch die Formatierungen (<font color=red> / <center>) durch <div class="deineKlasse"> -Container ersetzen, die mit Stylesheets (CSS) formatiert werden.
Dann noch den Viewport einstellen, dass auf kleineren Geräten nicht alles weggezoomt wird mit <meta name="viewport" content="width=device-width, initial-scale=1"> und die Kodierung auf UTF8 stellen (dass die Umlaute nicht als "?" angezeigt werden - mussst du aber auch in deinem Editor als UTF8 speichern) mit <meta charset="utf-8">.
Dann kümmern wir uns nun noch um das JavaScript:​
Das Aussehen von Elementen verändert man nach dem aktuellen Standard mit Stylesheets (<head><style>.deineKlasse{color:#f0f0f0;}</style></head>) und dem JS-Befehl document.getElementById("deinBlock").className = "deineKlasse"; Außerdem hätte dein Code, auch wenn er richtig (document.getElementById("deinBlock").style = "color:#f0f0f0;"; ) geschrieben wäre, in bestimmten Browsern nicht funktioniert.
Außerdem immer einen ; hinter alle JS-Anweisungen, auch Definitionen von Variablen.

Anmerkung: Ich musste den Verbesserten Code im Beitrag darunter senden, weil der Beitrag sonst zu viele Zeichen hatte!

So sollte es ungefähr stimmen. Sollte etwas nicht stimmen an alle anderen, verbessert mich bitte.
Man möchte anmerken, dass dies ein Haufen Arbeit war, also sorry, falls in dem Code Fehler sind.
 
Code zum oberen Post
Code:
<!doctype html>
<html>
<head>
 <meta name="viewport" content="width=device-width, initial-scale=1">
<meta charset="utf-8">
<title>grgrztrsaz</title>
<style>
body{
//Ersetzt das veraltete Inline-CSS im Body-Tag
background: #FFCC99;
}
.falsch{
//Die Hintergründe für die Boxen die eine ID mit falsch haben (die Klassen werden dann unten im JS zugewiesen)
background: #ff0000;
}
.richtig{
//Die Hintergründe für die Boxen die eine ID mit richtig haben (die Klassen werden dann unten im JS zugewiesen)
background: #008000;
}
.specc{
//Die Hintergründe für die Box unten, der eine besondere Schriftfarbe zugewiesen wird (die Klassen werden dann unten im JS zugewiesen)
color: #f0f0f0;
}
.center{
//Ersetzt das <center>-Element
display:inline-block;
text-align: center;
}
.font1{
//Ersetzt das erste Font-Element
display:inline-block;
color=#000080;
font-face=Arial;
}
.td1{
//Ersetzt das Inline-CSS eines td-Elements
text-align:center;
}
.td2{
//Ersetzt das Inline-CSS eines td-Elements
vertical-align:top;
text-align:center;
}
</style>
<head>
<body>
<table style="border:1px solid;">
<tr>
<th name="1.Zeile 1.Spalte" width=10%></th>
<th name="1.Zeile 2.Spalte" width=1%></th>
<th name="1.Zeile 3.Spalte" width=100%>
<div class="font1">
<div class="center"><h1>nshgnta</h1><h3>Quiz</h3></div>
</div>
</th>
</tr>
<tr>
<td  name="2Zeile 1Spalte" class="td1">
</td>
<td name="2Zeile 2Spalte"></td>
<td name="2Zeile 3Spalte"></td>
</tr>
<tr>
<td name="3Zeile 1Spalte" class="td2">
</td>
<td  name="3Zeile 2Spalte"></td>
<td  name="3Zeile 3Spalte"><div class="center"><form>
<script type="text/javascript">

var Frage1 = x + Antworten1;
var Frage2 = y + Antworten2;
var Frage3 = z + Antworten3;

var Antworten1 = <?php $arr =array(a,b,c,d);   shuffle($arr);      echo(implode("<br>",$arr));  ?>;
var Antworten2 = <?php $arr =array(e,f,g,h);   shuffle($arr);      echo(implode("<br>",$arr));  ?>;
var Antworten3 = <?php $arr =array(i,j,k,l);   shuffle($arr);      echo(implode("<br>",$arr));  ?>;


var x = Math.round((Math.random()*2));

var a = Math.round((Math.random()*2));
var b = Math.round((Math.random()*2));
var c = Math.round((Math.random()*2));
var d = Math.round((Math.random()*2));

var y = Math.round((Math.random()*2));

var e = Math.round((Math.random()*2));
var f = Math.round((Math.random()*2));
var g = Math.round((Math.random()*2));
var h = Math.round((Math.random()*2));

var z = Math.round((Math.random()*2));

var i = Math.round((Math.random()*2));
var j = Math.round((Math.random()*2));
var k = Math.round((Math.random()*2));
var l = Math.round((Math.random()*2));

antworten = new Array();

antworten[a] = "<input type='button' value='Saturnos, Satyr' id='11falsch' onClick='farbe11(this.form)' style='color:black;width:230px'>"
 + "<br>";
antworten[b] = "<input type='button' value='Kronos, Titan' id='12richtig' onClick='farbe12(this.form)' style='color:black;width:230px'>"
 + "<br>" ;
antworten[c] = "<input type='button' value='Saturnos, Titan' id='13richtig' onClick='farbe13(this.form)' style='color:black;width:230px'>"
 + "<br>" ;
antworten[d] = "<input type='button' value='Neptun, Gott' id='14falsch' onClick='farbe14(this.form)' style='color:black;width:230px'>"
 + "<br>";

antworten[e] = "<input type='button' value='In der Griechischen Religion' id='15falsch' onClick='farbe15(this.form)' style='color:black;width:230px'>"
 + "<br>";
antworten[f] = "<input type='button' value='im Christentum' id='16falsch' onClick='farbe16(this.form)' style='color:black;width:230px'>"
 + "<br>" ;
antworten[g] = "<input type='button' value='im Judentum' id='17falsch' onClick='farbe17(this.form)' style='color:black;width:230px'>"
 + "<br>" ;
antworten[h] = "<input type='button' value='in der r\u00f6mischen Religion' id='18richtig' onClick='farbe18(this.form)' style='color:black;width:230px'>"
 + "<br>";

antworten[i] = "<input type='button' value='Seine eigenen Kinder' id='19richtig' onClick='farbe19(this.form)'  style='color:black;width:230px'>"
 + "<br>" ;
antworten[j] = "<input type='button' value='alle Steine die er in die Finger bekahm' id='20falsch' onClick='farbe20(this.form)' style='color:black;width:230px'>"
 + "<br>" ;
antworten[k] = "<input type='button' value='Nur seinen Sohn Neptun' id='21falsch' onClick='farbe21(this.form)' style='color:black;width:230px'>"
 + "<br>" ;
antworten[l] = "<input type='button' value='Jupiter' id='22falsch' onClick='farbe22(this.form)' style='color:black;width:230px'>"
 + "<br>" ;

frage = new Array();
frage[x] = "Wer und was ist Jupiters Vater?" + "<br>";

frage[y] = "In welcher Religion wird Jupiter Jupiter genannt?" + "<br>" ;

frage[z] = "Wen/Was verschlang Saturnos?" + "<br>" ;


document.write(<?php $arr = Array(x + Antworten1,y + Antworten2,z + Antworten3); shuffle($arr) ; echo "br" + implode($arr); ?>);

for(q=3; q<= 5; q = q +1) {
document.write(frage[q] + "<br>");
}
for(r=0; r<=11; r = r +1) {
document.write(antworten[r]);
}

function farbe11(form){
document.getElementById("11falsch").className = "falsch";
}

function farbe12(form){
document.getElementById("12richtig").className = "richtig specc";
}
function farbe13(form){
document.getElementById("13richtig").className = "richtig";
}
function farbe14(form){
document.getElementById("14falsch").className = "falsch";
}
function farbe15(form){
document.getElementById("15falsch").className = "falsch";
}
function farbe16(form){
document.getElementById("16falsch").className = "falsch";
}
function farbe17(form){
document.getElementById("17falsch").className = "falsch";
}
function farbe18(form){
document.getElementById("18richtig").className = "richtig";
}
function farbe19(form){
document.getElementById("19richtig").className = "richtig";
}
function farbe20(form){
document.getElementById("20falsch").className = "falsch";
}
 function farbe21(form){
document.getElementById("21falsch").className = "falsch";
}
 function farbe22(form){
document.getElementById("22falsch").className = "falsch";
}

</script>
</form></div>
</td>
</tr>
</table>
</body>
</html>
EDIT: Habe noch nachträglich BB-Code entfernet, der durch das Kopieren entstanden ist.
 
Zuletzt bearbeitet von einem Moderator:
Werbung:
Also zur Verbesserung erstmal in Worten erklärt:
Erst mal einstellen, dass wir in HTML5 programmieren (was bei dem Ansatz von dir wahrscheinlich nicht der Fall ist, aber ich mach die Verbesserung nach diesen aktuellen Standards). Das tun wir mit <!doctype html>.
Dann noch die Formatierungen (<font color=red> / <center>) durch <div class="deineKlasse"> -Container ersetzen, die mit Stylesheets (CSS) formatiert werden.
Dann noch den Viewport einstellen, dass auf kleineren Geräten nicht alles weggezoomt wird mit <meta name="viewport" content="width=device-width, initial-scale=1"> und die Kodierung auf UTF8 stellen (dass die Umlaute nicht als "?" angezeigt werden - mussst du aber auch in deinem Editor als UTF8 speichern) mit <meta charset="utf-8">.
Dann kümmern wir uns nun noch um das JavaScript:​
Das Aussehen von Elementen verändert man nach dem aktuellen Standard mit Stylesheets (<head><style>.deineKlasse{color:#f0f0f0;}</style></head>) und dem JS-Befehl document.getElementById("deinBlock").className = "deineKlasse"; Außerdem hätte dein Code, auch wenn er richtig (document.getElementById("deinBlock").style = "color:#f0f0f0;"; ) geschrieben wäre, in bestimmten Browsern nicht funktioniert.
Außerdem immer einen ; hinter alle JS-Anweisungen, auch Definitionen von Variablen.

Anmerkung: Ich musste den Verbesserten Code im Beitrag darunter senden, weil der Beitrag sonst zu viele Zeichen hatte!

So sollte es ungefähr stimmen. Sollte etwas nicht stimmen an alle anderen, verbessert mich bitte.
Man möchte anmerken, dass dies ein Haufen Arbeit war, also sorry, falls in dem Code Fehler sind.





Danke erstmal ich schau mal ob es funktioniert.
Mfg No Life
 
Hat allerdings noch nie nen Fehler rausgeworfen und wurde immer richtig angezeigt. /* */ Sind ja Kommentare die über mehrere Zeilen gehen, siehe JavaScript. // ist allerdings ein einzeiliger Kommentar.
/* */ nehme ich nur her, wenn der Kommentar mehrzeilig ist. Da es noch nie bei // nen Fehler gegeben hat und es auch immer grün angezeigt wurde, hab ich das immer so gemacht. Aber danke für die Info :)
 
Werbung:
Hat allerdings noch nie nen Fehler rausgeworfen und wurde immer richtig angezeigt. /* */ Sind ja Kommentare die über mehrere Zeilen gehen, siehe JavaScript. // ist allerdings ein einzeiliger Kommentar.
/* */ nehme ich nur her, wenn der Kommentar mehrzeilig ist. Da es noch nie bei // nen Fehler gegeben hat und es auch immer grün angezeigt wurde, hab ich das immer so gemacht. Aber danke für die Info :)
Ich hab das so nicht gelernt, und auch noch nie in einem Stylesheet gesehen, einzeilige Kommentare mit // zu maskieren.
CSS:
/* einzeiliger Kommentar */
/* zweizeiliger
    Kommentar */
 
Ich hab das so nicht gelernt, und auch noch nie in einem Stylesheet gesehen, einzeilige Kommentare mit // zu maskieren.
CSS:
/* einzeiliger Kommentar */
/* zweizeiliger
    Kommentar */
Okay. Ich habs so gelernt und das wurde bei den Browsern auch richtig farbig markiert und so aber egal.
Mich würde eher intressieren, ob bei @No Life der Code geht :)
 
Werbung:
Werbung:
Wenn beispielsweise in Deinem HTML-Code zu Beginn weiterhin ohne die Dokumenttyp-Deklaration <!doctype html> keine Angabe zur HTML-Version (= HTML5 = aktueller Standard) erfolgt, wird das Dokument vom Browser als HTML4(.01) eingestuft/interpretiert/verarbeitet.

So weit, so schlecht, denn in dieser Version sind Ziffern zu Beginn eines ID-Bezeichners (id='11falsch', id='12richtig') nicht zulässig, und legen das komplette JavaScript lahm.

Und name muss in beiden HTML-Versionen mit einem Buchstaben beginnen.
 
Wenn beispielsweise in Deinem HTML-Code zu Beginn weiterhin ohne die Dokumenttyp-Deklaration <!doctype html> keine Angabe zur HTML-Version (= HTML5 = aktueller Standard) erfolgt, wird das Dokument vom Browser als HTML4(.01) eingestuft/interpretiert/verarbeitet.

So weit, so schlecht, denn in dieser Version sind Ziffern zu Beginn eines ID-Bezeichners (id='11falsch', id='12richtig') nicht zulässig, und legen das komplette JavaScript lahm.

Und name muss in beiden HTML-Versionen mit einem Buchstaben beginnen.
aber wenn er meinen Code genommen hat, steht da <!doctype html>
... wo Du das so gelernt hast.

Ausgenommen PHP u. JS, wo das für Ein- u. Mehrzeiler zutrifft, kenne ich keine (einschlägige) Quelle, die das in dieser Form auch für einzeilige Kommentare in CSS proklamiert.
Und auf diese Posts antworte ich nun nicht mehr, sondern nur noch auf Posts, die etwas mit @No Life 's Problem zu tun haben. Für mich ist das Thema mit // und /* */ einfach nur OffTopic und btw. auch wurscht, wie man das jetz richtig schreibt.
 
Zurück
Oben