Formular per Javascript includen
Robin
- javascript
hallo liebe Community,
ich baue derzeit ein script für eine Pen & Paper rpg, welches bestimmte Berechnungen für den Nutzer übernehmen soll.. Zu beginn gibt man die Anzahl der Charaktere ein, mit denen man rechnen möchte, danach spuckt der Rechner alle möglichen Zahlenwerte und Berechnungen aus
Ich wurde allerdings Gestern Nachmittag darauf angesprochen, dass es nützlich wäre, wenn man auch noch später Charaktere für das Spiel hinzufügen könnte.. Das ist für mich im Moment noch ein großes Problem, denn auch nach Stundenlangen Googeln und testen konnte ich keine wirklich passende Lösung finden
Im Moment gibt man wie schon gesagt die Anzahl der Formulare ein (ein Formular steht für einen Charakter) und das passiert so
<?php
if (empty($_POST["submit"]))
{
include("NinjaZahl.html"); //hier gibt man die Anzahl ein, falls nichts eingetragen wurde, wird die Form erneut geladen
}
else
{
$zahl = $_POST["NinjaCounter"];
$i = 0;
while ($i < $zahl)
{
include("NinjaRechnerForm.js"); //falls eine Anzahl eingetragen wurde, wird in einer Schleife das Formal n fach erstellt
$i++;
}
}
?>
hier mal die Seite meine Seite
Ich habe jetzt folgende Überlegungen wie ich es anstellen könnte..
ich habe mich nun für die 2. Lösung entschieden, nur selbst nach vielen Stunden nichts gefunden was passt
ich habe auch schon hier auf der seite gesucht, allerdings nicht wirklich etwas brauchbares gefunden außer, dass mehrfach gesagt wurde es geht nicht. Da diese Treads allerdings schon sehr alt sind habe ich gehofft es gibt heute eine Lösung
hab auch schon das hier versucht, nur klappt das auch nicht sonderlich gut
klick
Klick
ich baue derzeit ein script für eine Pen & Paper rpg, welches bestimmte Berechnungen für den Nutzer übernehmen soll.. Zu beginn gibt man die Anzahl der Charaktere ein, mit denen man rechnen möchte, danach spuckt der Rechner alle möglichen Zahlenwerte und Berechnungen aus
Ach komm - ein großer Teil des Spaßes an P&P-RPGs liegt doch nicht im Bürokratischen herumrechnen sondern im Zusammensein und Geschichten erzählen - was da am Zettel steht ist doch im Grunde egal.
Zu deiner eigentlichen Frage:
Arrays!
<input name="foo" value="bar" />
<input name="foo" value="baz" />
Am Server sollte als Wert "baz" ankommen
<input name="foo[]" value="bar" />
<input name="foo[]" value="baz" />
Am Server sollte ein Array mit bar und baz ankommen
Ob du dann eines oder 23 Ninjas im Formular hast, ist egal.
Hi,
<input name="foo" value="bar" />
<input name="foo" value="baz" />
>
> Am Server sollte als Wert "baz" ankommen
Nein. Es sollten beide Werte ankommen. Tuns sie auch.
Nur PHP ist zu blöd dafür, ein Array draus zu machen, wenn der Name keine [] enthält - und läßt nur den letzten Wert durch ...
cu,
Andreas
--
[Warum nennt sich Andreas hier MudGuard?](http://MudGuard.de/)
[O o ostern ...](http://ostereier.andreas-waechter.de/)
Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
Hi,
<input name="foo" value="bar" />
<input name="foo" value="baz" />
> >
> > Am Server sollte als Wert "baz" ankommen
>
> Nein. Es sollten beide Werte ankommen. Tuns sie auch.
Ja, mein Fehler - natürlich kommt beim server foo=bar&foo=baz als Query String an
> Nur PHP ist zu blöd dafür, ein Array draus zu machen, wenn der Name keine [] enthält - und läßt nur den letzten Wert durch ...
Sagt wer? Afaik gibt es keine Regel, wie genau der Query String zu parsen ist[1] - ebenso definiert HTML in keiner Weise, wie der logische Aufbau der name-Attribute beschaffen sein muss. Im Falle von PHP ist es jedenfalls nur Konsequent, da dieselbe Behandlung/Logik für Interne und für extern zugeführte variablen Verwandt wird
$foo = 'bar';
$foo = 'baz';
Ergibt einen String
$foo[] = 'bar';
$foo[] = 'baz';
Ergibt ein Array
Und solltest du nicht zufrieden sein, kannst du die bereitgestellten Superglobalen Arrays ja wegschmeissen und selbst nach beliebigen Regeln erstellen.
[1] Man liest zwar an allen Ecken und enden, dass es PHP falsch macht, aber "alle anderen CGI-Anwendungen richtig", aber man kann nirgends eine Regel finden, wie es denn zu sein hat
Hi,
Nur PHP ist zu blöd dafür, ein Array draus zu machen, wenn der Name keine [] enthält - und läßt nur den letzten Wert durch ...
Sagt wer?
u.a. ich.
Afaik gibt es keine Regel, wie genau der Query String zu parsen ist[1] - ebenso definiert HTML in keiner Weise, wie der logische Aufbau der name-Attribute beschaffen sein muss. Im Falle von PHP ist es jedenfalls nur Konsequent, da dieselbe Behandlung/Logik für Interne und für extern zugeführte variablen Verwandt wird
naja, ich finde es sehr unlogisch, daß von mehreren Parametern nur einer zur Verfügung steht.
Und solltest du nicht zufrieden sein, kannst du die bereitgestellten Superglobalen Arrays ja wegschmeissen und selbst nach beliebigen Regeln erstellen.
oder gleich mit einer Sprache arbeiten, die nicht einfach Parameter unterschlägt.
[1] Man liest zwar an allen Ecken und enden, dass es PHP falsch macht, aber "alle anderen CGI-Anwendungen richtig", aber man kann nirgends eine Regel finden, wie es denn zu sein hat
Naja - es ist halt total unlogisch, daß Parameter im Request einfach mal so unterschlagen werden.
Soweit ich weiß, kann man das ja auch nicht in der php.ini umkonfigurieren.
Und soweit ich weiß, kommt auch kein Notice/Error/Warning, daß auf den unterschlagenen Parameter hinweist.
cu,
Andreas
Hi,
Nur PHP ist zu blöd dafür, ein Array draus zu machen, wenn der Name keine [] enthält - und läßt nur den letzten Wert durch ...
Sagt wer?u.a. ich.
Afaik gibt es keine Regel, wie genau der Query String zu parsen ist[1] - ebenso definiert HTML in keiner Weise, wie der logische Aufbau der name-Attribute beschaffen sein muss. Im Falle von PHP ist es jedenfalls nur Konsequent, da dieselbe Behandlung/Logik für Interne und für extern zugeführte variablen Verwandt wird
naja, ich finde es sehr unlogisch, daß von mehreren Parametern nur einer zur Verfügung steht.
Wieso? Der Nachfolgende überschreibt den Vorhergehenden.
Und solltest du nicht zufrieden sein, kannst du die bereitgestellten Superglobalen Arrays ja wegschmeissen und selbst nach beliebigen Regeln erstellen.
oder gleich mit einer Sprache arbeiten, die nicht einfach Parameter unterschlägt.
Nachfolgende überschreibt den Vorhergehenden.
[1] Man liest zwar an allen Ecken und enden, dass es PHP falsch macht, aber "alle anderen CGI-Anwendungen richtig", aber man kann nirgends eine Regel finden, wie es denn zu sein hat
Naja - es ist halt total unlogisch,
Es ist innerhalb der Sprache konsistent - ich verstehe nicht, was daran unlogisch ist.
daß Parameter im Request einfach mal so unterschlagen werden.
Wird er auch nicht, der Nachfolgende überschreibt den Vorhergehenden.
Soweit ich weiß, kann man das ja auch nicht in der php.ini umkonfigurieren.
Nein, kann man afaik nicht.
Und soweit ich weiß, kommt auch kein Notice/Error/Warning, daß auf den unterschlagenen Parameter hinweist.
Wozu auch? Wenn ich $var = 1; $var = 2; notiere, dann bekomme ich ebenfalls keine Meldung, dass ich eine Variable überschreibe, die schon existiert hat.
Danke schonmal für die Hilfe.. allerdings habe ich nicht wirklich verstanden wie mir das jetzt weiter helfen soll Oo
ich habe ehrlich gesagt nicht einen blassen schimmer wie dieser Code mir bei meinen Problem helfen sollte v.v
achja, ich habe inzwischen mal Ajax angeschaut und es versucht darüber zu machen
function NinjaAdd(){
var name = document.getElementsByTagName("div")[document.forms.length-1].id; ajax_loadContent(name,'Form.php');}
mein Gedanke dabei war es, am ende jeder Form Blockelemente (also div, hoffe die heißen so richtig) zu setzen und immer an der letzten ein Neues Formular dran zu hängen, allerdings klappt das nicht so gut wie ursprünglich Gedacht. Beim ersten Durchlaufen dieser Funktion (die im übrigen ein php element aufruft, welches die form includet) passiert gar nix, beim zweiten mal erscheint auf den bildschirm nur ein weises Blatt mit einer "4"
daher scheint dies nicht sonderlich zu funktionieren.. kennt ihr ein besseres script/eine bessere Methode?
Hat denn keiner von euch eine Idee?
Ich wäre sehr dankbar für jeden Hinweis