HTML-Code Generieren

Hallo Jungs,

Nach langer html.de-Abstinenz habe ich mich wieder zurück-verirrt und möchte nun wieder richtig loslegen.

Doch schon stellt sich mein erstes Problem:

Ich habe vor, ein Formular zu entwerfen, in dem in verschiedenen 's und 's bestimmte Daten vom User eingetragen werden können und durch einen „Generieren“-Button ein HTML-Code (optional auf die Angaben des Users angepasst) dem User angezeigt wird.

Beispiel:

Jeder User soll einen „Steckbrief“ seines Autos auf seiner Seite unterbringen können. Hierfür ist bspw. interessant „PS, max. Geschw., von 0 auf 100 in … usw.“ - Der User braucht hierzu lediglich ausüllen:

PS? [ FORMULARFELD ]
max. Geschw.? [ FORMULARFELD ]
von 0 auf 100 in? [ FORMULARFELD ]

Durch auf „Generiereren“ klicken wird ihm ein Code herausgegeben wie bspw …

<table><tr><td>PS</td><td>180</td></tr><tr><td>max. Geschw.</td><td>240</td></tr><tr><td>von 0 auf 100 in</td><td>8 Sek.</td></tr></table>

Zugegeben - Das ist natürlich ein sehr einfaches Beispiel. Doch die Komplexität einer Tabelle lässt sich ja ins Unendliche vergrößern.

Könntet Ihr mir hierbei helfen? Ich weiß ehrlich gesagt nicht einmal mehr, wo ich anfangen soll - Geschweige denn ob dies überhaupt das richtige Forum ist für meine Frage :stuck_out_tongue:

Euer Fabi

Ich weiss, das du nach einer JS Lösung suchst, aber mit PHP wäre es auch möglich:

[php]

Hier ist der Code für die Tabelle

<?php if(isset($_GET['generator'])) { if($_GET['generator'] == 'true') { echo'
PS: '.$_REQUEST['ps'].'
max.Geschwindigkeit '.$_REQUEST['max'].'
0-100: '.$_REQUEST['0100'].'
'; } } ?> [/php]MfG, matibaski

Das sieht doch schon sehr viel einfacher aus, als ich es mir mit JavaScript vorgestellt hatte. Eine Sache aber: Wie binde ich im obigen Quelltext nun meinen „Button“ ein? Denn: So wie es momentan ausschaut, kann sich der User gar nicht den QT generieren lassen :confused:

[HTML]

PS:

Max-KmH:

Von 0 auf 100 in:

Generiere Code.

 
[/HTML]

Das wäre, das was du suchtest :wink:
zwar nicht schön, aber selten :smiley:

So etwa:
[php]

PS:
Max. Geschwindigkeit:
Zeit von 0-100:

Hier ist der Code für die Tabelle

<?php if(!isset($_GET['generator'])) { echo'
Sie haben noch keinen Code generieren lassen
'; } else { if($_GET['generator'] == 'true') { echo'
     
PS: '.$_REQUEST['ps'].'
max.Geschwindigkeit '.$_REQUEST['max'].'
0-100: '.$_REQUEST['0100'].'
'; } } ?>

[/php]
Hab nen Fehler gemacht.
Habe

 vergessen. Denn sonst hätte es die Tabelle umgesetzt.
Habe dir noch etwas dazugeschrieben, dass wenn noch nichts generiert wurde, dass eine Meldung erscheint.

MfG, matibaski

In Javascript gibst eine Funktion namens createElement, die dazugehörigen funktionen wie createTextNode und appendChild kannst du wunderbar nutzen um dir HTML Code zu generieren lassen.

Ich denke, dass die PHP-Lösung soweit die beste ist. Vielen, vielen Dank! Ich konnte soweit alles auf meine Anwendungen anpassen, allerdings ergab sich noch ein Problem: Wie erreiche ich, dass nachdam man auf „Generieren“ klickt, die Eingaben des Users nicht aus den Formularfeldern verschwinden? So könnte man ggf. die eigenen Einträge editieren und muss nicht gleich alles noch einmal eintragen -

Klar geht das.
Ich habe es für die Übersicht per GET abschicken lassen, dass man die Übersicht hat.
Es sieht nun so aus:
[php]

<?php if(!isset($_GET['submit'])) { echo'PS:
Max. Geschwindigkeit:
Zeit von 0-100:
'; } elseif($_GET['submit'] == 'GENERIEREN') { echo'PS:
Max Geschwindigkeit:
Zeit von 0-100:
'; } else { echo'PS:
Max. Geschwindigkeit:
Zeit von 0-100:
'; } ?>

Hier ist der Code für die Tabelle

<?php if(!isset($_GET['submit'])) { echo'
Sie haben noch keinen Code generieren lassen
'; } else { if($_GET['submit'] == 'GENERIEREN') { echo'
     
PS: '.$_GET['ps'].'
max.Geschwindigkeit '.$_GET['max'].'
0-100: '.$_GET['0100'].'
'; } } ?>[/php]Nun prüft es oben, ob es schon generiert wurde. Wenn nicht, dann setzt es den Normalmodus ein. Wenn doch, dann ruft es bei value="" die $_GET Variablen runter.

Und dann habe ich unten einfach statt $_POST[‚generator‘] einfach $_GET[‚submit‘].

Aber am Script sieht man das alles schon.

MfG, matibaski

edit:
Hier für Kostprobe:
http://matibaski.paradoxe.de/MyB/_private/mybcounter/test.php

Obwohl es wohl mittlerweile eher in die Kategorie „PHP“ gehört, hier noch einmal mein editierter (und erweiterter) Quelltext. Das Beispiel mit den „Auto-Steckbriefen“ war natürlich nur eine Anwendung, deswegen habe ich so stehen lassen. Die eigentlich „Anwendung“ werden Sport-Spiel-Sheets sein. Deswegen die neuen Eingabefelder „Score1“ und „Score2“ (in WYSIWYG-Schreibweise, nicht wundern - dort möchte ich es später anwenden). Hinzu kommen viele „wenn … dann“-Zeilen, so wird bspw. nun - sofern man nichts einträgt - im ausgegebenen Code eine Eingabe erscheinen wie etwa „Keine Angaben“. Dies alles kombiniert mit der vorherigen Antwort, wie man den eigenen Eintrag zum Editieren speichern kann, ergab jenen Quelltext:

[php]

<?php if(!isset($_GET['submit'])) { echo 'PS:
Max. Geschwindigkeit:
Zeit von 0-100:
Score T1 : Score T2
'; } elseif($_GET['submit'] == 'GENERIEREN') { echo'PS:
Max Geschwindigkeit:
Zeit von 0-100:
Score T1 : Score T2
'; } else { echo'PS:
Max. Geschwindigkeit:
Zeit von 0-100:
Score T1 : Score T2
'; } ?>

Hier ist der Code für die Tabelle

<?php $pfaerdest = $_REQUEST['ps']; $maxgesch = $_REQUEST['max']; $zeit = $_REQUEST['0100']; $team1 = $_REQUEST['team1']; $team2 = $_REQUEST['team2']; if(!isset($_GET['submit'])) { echo'
Sie haben noch keinen Code generieren lassen
'; } else { if($_GET['submit'] == 'GENERIEREN') { echo '
	
'; 
if($pfaerdest == '') {
echo
'
';
}else{
echo
'
';
}
if($maxgesch == '') {
echo
'
';
}else {
echo
'
';
}
if($zeit == '') {
echo
'
';
}else {
echo
'
';
}
if($team1 == '') {
echo
'
';
}elseif($team1 == $team2) {
echo
'
';
}elseif($team1 < $team2){
echo
'
';
}elseif($team1 > $team2) {
echo
'
';
}
echo
'	
PS: Keine Pfaerdestaerken verfuegbar.
PS: '.$pfaerdest.'
PS: Keine Max. Geschwindigkeit verfuegbar.
PS: '.$maxgesch.'
PS: Keine Zeit verfuegbar.
PS: '.$zeit.'
Team1 [c=orange]xx[/c]: '; } if($team2 == '') { echo'[c=orange]xx[/c]
Team1 [c=orange]'.$team1.'[/c]:[c=orange]'.$team2.'[/c]
Team1 [c=red]'.$team1.'[/c]:[c=green]'.$team2.'[/c]
Team1 [c=green]'.$team1.'[/c]:[c=red]'.$team2.'[/c]
'; } ?>[/php]

Doch: „Parse error: parse error, unexpected $ in index.php on line 136“
Ein unerwartetes Ende? Was habe ich falsch gemacht?

Wenn auf ?> ein Error landet, dann ist eine Variable ungültig/nicht beendet/undefiniert.
Ich glaube, es liegt daran dass du mehrere elseif’s benutzt…

Ich bin mir nicht sicher, ob man mehrere verwenden darf… :smiley:

Ein anderer kann mir diese Frage sicher auch beantworten.

MfG, matibaski

Ahh schrecklich es scheitert immer an den letzten Schritten :stuck_out_tongue:

Also an mehreren „else if“ kann es nicht liegen.
Er nimmt halt die erste die passt, und ignoriert dann alle anderen.

Um das ganze zu debuggen würde ich dir empfehlen den Code einzurücken, und Zeile für Zeile zu kontrollieren.
Sind alle aufgemachten Klammern auch wirklich geschlossen?
Da hilft nur Zählen :wink:
Der Fehler den du da hast, ist meines erachtens einer der „schlimmsten“ in Fehler für den Entwickler -.-

Woohoo :smiley: Fehler gefunden :smiley:

Es fehlte lediglich ein „}“ vor dem „?>“. Alles funktioniert so, wie ich es mir vorgestellt habe. Ich danke Euch vielmals, Jungs!