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
[code=html]
grgrztrsaz
[/code]
Ganz schön dreist!
Aber wenn’s bis dahin hiermit noch zeitig klappt
Noch mit [plain]
[/plain] ein wenig zurechtgemacht, und auf Verdacht von HTML erstmal nach JS verschoben.
In Zeile #8 fehlt , in #17 u. #23 taucht im -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:
eigentlich geht es um den code in JS
Achso, da ist alles falsch.
Hast du eine Lösung dafür?
Mfg
system
30. März 2017 um 16:27
8
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 .
Dann noch die Formatierungen ( / ) durch
-Container ersetzen, die mit Stylesheets (CSS) formatiert werden.
Dann noch den Viewport einstellen, dass auf kleineren Geräten nicht alles weggezoomt wird mit
und die Kodierung auf UTF8 stellen (dass die Umlaute nicht als „?“ angezeigt werden - mussst du aber auch in deinem Editor als UTF8 speichern) mit
.
[INDENT]Dann kümmern wir uns nun noch um das JavaScript:[/INDENT]
Das Aussehen von Elementen verändert man nach dem aktuellen Standard mit Stylesheets (
.deineKlasse{color:#f0f0f0 ;} ) 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.
system
30. März 2017 um 16:28
9
Code zum oberen Post
<!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.
felixprogram:
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 .
Dann noch die Formatierungen ( / ) durch
-Container ersetzen, die mit Stylesheets (CSS) formatiert werden.
Dann noch den Viewport einstellen, dass auf kleineren Geräten nicht alles weggezoomt wird mit
und die Kodierung auf UTF8 stellen (dass die Umlaute nicht als „?“ angezeigt werden - mussst du aber auch in deinem Editor als UTF8 speichern) mit
.
[INDENT]Dann kümmern wir uns nun noch um das JavaScript:[/INDENT]
Das Aussehen von Elementen verändert man nach dem aktuellen Standard mit Stylesheets (
.deineKlasse{color:#f0f0f0 ;} ) 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
system
31. März 2017 um 11:04
12
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
felixprogram:
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.
/* einzeiliger Kommentar */
/* zweizeiliger
Kommentar */
system
31. März 2017 um 13:11
14
Spicelab:
Ich hab das so nicht gelernt, und auch noch nie in einem Stylesheet gesehen, einzeilige Kommentare mit // zu maskieren.
/* 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
… 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.
LeCub
31. März 2017 um 17:48
16
Vielleicht in einem Tutorial für Sass? Dort sind „//“ als Kommentare legitim.
Weil sie (ohne spezielle Behandlung) i.d.R. mit der Komprimierung zur CSS-Datei aus dem Code fliegen.
http://webdev-lab.de/til-sass-kommentare-in-komprimierten-css-dateien/
Naja, und von Sass kann ich in seinem Code auch nichts erkennen - wie auch, ohne separate CSS-Datei?
nein ich bekomme kein quiz raus was eigentlich mein ziel war also :((
mfg no life
Wenn beispielsweise in Deinem HTML-Code zu Beginn weiterhin ohne die Dokumenttyp-Deklaration 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.
[ul]
[li] https://wiki.selfhtml.org/wiki/Referenz:HTML#ID [/li]
[li] https://wiki.selfhtml.org/wiki/Referenz:HTML#NAME [/li][/ul]
system
1. April 2017 um 20:06
20
Spicelab:
Wenn beispielsweise in Deinem HTML-Code zu Beginn weiterhin ohne die Dokumenttyp-Deklaration 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.
[ul]
[li] https://wiki.selfhtml.org/wiki/Referenz:HTML#ID [/li]
[li] https://wiki.selfhtml.org/wiki/Referenz:HTML#NAME [/li][/ul]
aber wenn er meinen Code genommen hat, steht da
Spicelab:
… 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.