• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

JS ein Form mehrere Value + Submit

bosko

Member
Hoi,

ich hatte mal ein einfaches JS wo mit man in einer FORM unterschiedliche Value zu den zugehörigen Submit senden konnte, leider finde ich dieses Script nicht mehr und hab auch kein lösungsansatz.
Hier eine vorstellung wie es mal war und ich es Bräuchte:

HTML:
<form action="index.php" method="post">

<-- Start ID 1 -->
<input type="hidden" name="id" value="1">
<input type="image" src="pic.png" value="start"  onsubmit="submit-form();"/>
<input type="image" src="pic.png" value="stop"  onsubmit="submit-form();"/>

<-- Start ID 2 -->
<input type="hidden" name="id" value="2">
<input type="image" src="pic.png" value="start"  onsubmit="submit-form();"/>
<input type="image" src="pic.png" value="stop"  onsubmit="submit-form();"/>

........

Ich weiß das man die Input einer val[] oder so deklarieren muss, und das man dies auch Später auf 3 oder 4 Submit erweitern kann.

Alter Kopf raucht ganz schön, hof da kann mir jemand weiter helfen

gruß
 
Zuletzt bearbeitet:
was bedeutet diese Aussage hier?

das ich so ein script schon mal hatte und ich es nicht mehr finde.

was ich im netz gefunden habe ist:
HTML:
<script language=\"javascript\">
 function absenden(p) {
  document.form1.variable.value = p;
  document.form1.submit;
 }
</script>
<form name=\"form1\" action=\"seiteblubb.php\" method=\"...\">

 <input type=\"hidden\" name=\"variable\" readonly />
 <button onclick=\"absenden(\'1\');\">Variable 1</button>
 <button onclick=\"absenden(\'2\');\">Variable 2</button>

</form>

passt aber nicht wirklich zu meinem beispiel oben
 
das ich so ein script schon mal hatte und ich es nicht mehr finde.
soviel war mir auch schon klar. ich versteh nur nicht was du mit
in einer FORM unterschiedliche Value zu den zugehörigen Submit senden
meinst. Ein submit ist in erster Linie ein Event, ein Event-Value ergibt da irgendwie keinen Sinn. und es gibt auch nur einen Submit (man kann ein Formular schließlich nicht mehrfach gleichzeitig senden).

- - - Aktualisiert - - -

meine nächstliegende Interpretation wäre folgende:

PHP:
<form action="index.php" method="post">
  <input type="hidden" name="id" value="1">
  <input type="hidden" name="action" value="start">
  <button type="submit">
    <img src="…" … >
  </button>
</form>

<!-- oder noch einfacher -->
<a href="index.php?id=1&action=stop">
    <img src="…" >
</a>
 
Zuletzt bearbeitet:
Was soll das durchgängige Escapen der Anführungszeichen? Das Ganze macht nur Sinn, wenn es über <?php echo "..."; ?> ausgegeben würde - das allerdings ist wiederum völliger Quatsch, da man längere HTML-Abschnitte normalerweise nicht per echo ausgibt (viel zu umständlich)...
PS: das language-Attribut ist veraltet -> weg damit
 
ich hab es jetzt mal so probiert aber leider lässt sich der wert start oder stop nicht übertragen, getestet als GET möchte aber später als POST haben

HTML:
<script language="javascript">
 function absenden(p) {
  document.form.a.value = p;
  document.form.submit;
 }
</script>
<form name="form" action="index.php" method="Get">
 <input type="hidden" name="id" value="1">
 <button onclick="absenden('start');">start</button>
 <button onclick="absenden('stop');">stop</button>
</form>

<form name="form" action="index.php" method="Get">
 <input type="hidden" name="id" value="2">
 <button onclick="absenden('start');">start</button>
 <button onclick="absenden('stop');">stop</button>
</form>
 
Die korrekte Syntax ist ja auch document.form.submit();.
PS: Wieso gehst du mit keinem Wort auf meine vorherigen Hinweise ein??
 
PS: Wieso gehst du mit keinem Wort auf meine vorherigen Hinweise ein??
Sorry weil ich es nicht ganz verstanden habe was du meinst...

HTML:
<script language="javascript">
 function absenden(p) {
  document.form.a.value = p;
  document.form.submit();
 }
</script>
<form name="form" action="index.php" method="Get">
 <input type="hidden" name="id" value="1">
 <button onclick="absenden('start');">start</button>
 <button onclick="absenden('stop');">stop</button>
</form>

<form name="form" action="index.php" method="Get">
 <input type="hidden" name="id" value="2">
 <button onclick="absenden('start');">start</button>
 <button onclick="absenden('stop');">stop</button>
</form>

es wird nur die id übergeben, a soll auch mit denn Werten Start/Stop übergeben werden.
meine Ausgabe ist gerade nur:

index.php?id=1
index.php?id=2

das Escapen ist nicht von mir, dies ist ein beispiel script was ich im Netz gefunden habe....
 
ja hab des jetzt weg gemacht das Attribut.

hmm <input type="hidden" name="a"> dies eingefügt aber Variable a bleibt leer.....................
 
Zuletzt bearbeitet von einem Moderator:
man kann sich so blöd anstellen und dann ist es doch so einfach danke dieser kleinen Konsole ;)

HTML:
<script>
 function absenden(a, f) {
  document.forms[f].auswahl.value = a;
 }
</script>
<form name="form1" action="index.php" method="Get">
 <input type="hidden" name="id" value="1">
  <input type="hidden" name="auswahl">
 <button onclick="absenden('start', 'form1');">start</button>
 <button onclick="absenden('stop', 'form1');">stop</button>
</form>

<form name="form2" action="index.php" method="Get">
 <input type="hidden" name="id" value="2">
  <input type="hidden" name="auswahl">
 <button onclick="absenden('start', 'form2');">start</button>
 <button onclick="absenden('stop', 'form2');">stop</button>
</form>

- - - Aktualisiert - - -

eine frage hätte ich noch, wäre es verkehrt dies so zu schreiben:
HTML:
<script>
 function absenden(a, f) {
  document.forms['test'].auswahl.value = a;
  document.forms['test'].id.value = f;
  document.form.submit();
 }
</script> 

<form name="test" action="00.php" method="Get">
<input type="hidden" name="id">
<input type="hidden" name="auswahl">

 <button onclick="absenden('start', '1');">start</button>
 <button onclick="absenden('stop', '1');">stop</button>

 <button onclick="absenden('start', '2');">start</button>
 <button onclick="absenden('stop', '2');">stop</button>
</form>

dies kommt ja meiner Frage vom ersten Beitrag hin....
 
auf der Seite war ich heute auch schon mehrmals, Nr. 2 macht er irgendwie nicht darum Nr. 4.

im grunde ist es egal wie wer schreib, wichtig ist das es sauber ist...
 
Nr. 2 macht er irgendwie nicht darum Nr. 4.
Doch, Nr. 2 funktioniert genauso, sonst würde es ja wohl nicht aufgeführt werden...

PS: noch eine Frage aus Interesse: wozu machst du überhaupt das mit den verschiedenen Formularwerten, sprich, was soll das Ganze werden?
 
dieser Bereich:

HTML:
 <button onclick="absenden('start', '1');">start</button>
 <button onclick="absenden('stop', '1');">stop</button>

wird von php als Schleife ausgegeben, ändern tut sich nur die Zahl und wenn die schleife 20 mal läuft ist der Codeabschnitt leichter als wenn jedes mal alles mit <form.. anfängt.
Und nein direkte links oder GET möchte ich nicht, da man dies Manipulieren kann, keine Sorge ein Reload des Skript ist nicht möglich um den Aufruf nochmal zu wiederholen.

Nur zur Info: der POST führt eine shell_exec aus...
 
bosko, ich kann dir Inhaltlich zwar nicht ganz folgen bei dem was du da tust oder vor hast aber das hört sich ineffektiv an, was du da machst. Und insbesondere
Und nein direkte links oder GET möchte ich nicht, da man dies Manipulieren kann
hört sich stark nach einem Verständnisproblem im Bereich Client-Server an.

Wenn dir das nicht geheuer ist, frag ruhig weiter. Es gibt kein Fragelimit hier.
 
Zuletzt bearbeitet:
Ja, so etwas habe ich schon vermutet. Ohne den genauen Sachverhalt zu kennen: ich glaube, das gewünschte Ziel kann man sicher wesentlich einfacher erreichen - das mit dem Formular absenden klingt mir viel zu umständlich.
PS: man kann POST-Werte genauso einfach "manipulieren" wie GET-Parameter...
 
mit dem Fragen da bin ich immer etwas auf Vorsicht geboten, in einem anderem Forum (was seit kurzem nicht mehr gibt) wurde man oft diskriminiert wenn man sagt, das man schon länger mit php arbeitet, und dann Anfänger Probleme fragen stellt.

um es etwas zu verdeutlichen worum es genauer geht ist;

Ich arbeite an einem Script was eine BASH auf dem Server aufrufen soll und verarbeiten soll, die Anweisungen liegen in einer DB die von php abgerufen werden und da es sich um mehrere Verarbeitungen handelt läuft ,vom Beitrag eins, dieser abschnitt als Schleife in php durch. Jede Anweisung ist nur einmal aufrufbar (wegen der Server PID) des wegen soll eine GET anweisung ausgeschlossen werden da die Parameter NICHT von hand eingetragen werden sollen. Die POST Anweisung wird nur einmal verarbeitet und mittels 'header("Location:' die neue Seite aufgerufen so das ein reload ausgeschlossen werden kann.
Zur Sicherheit überprüft das Shell Script selbst nochmal die DB ob der Prozess schon gestartet wurde oder nicht.

Ich hoffe man versteht mich so einiger maßen und kann den Ablauf nachvollziehen.
 
Zurück
Oben