Probleme mit this.form.submit()

PHP-Fan

Erfahrenes Mitglied
Hi,

HTML:
<input type="checkbox" name="iSelectedJob" value="1" onClick="this.form.submit()">

folgende Problematik trifft auf:

http://dan-dus.de/hilfe/

Die Frage ist, wie kann ich es umsetzen, dass man auch ohne Probleme direkt zurückspringen kann (aktuell geht nur ein direktes vorspringen, wenn man eine neuere ID abwählt).

Danke!
 
Zuletzt bearbeitet:
Hi,

ich kann mir nur schwer vorstellen, dass dir aufgrund der Problembeschreibung und des Links, der offensichtlich überhaupt nichts mit der Problemstellung gemein hat, Hilfestellung leisten kann.

Ciao
Quaese
 
Hi,

in Odnung. Dann nochmal. Es geht um folgenden Code:

PHP:
<?php

$iSelectedJob = 0;
if (!empty($_POST['iSelectedJob']))
	$iSelectedJob = $_POST['iSelectedJob']
?>

<form action="/test.php" method="post">
	<input type="checkbox" name="iSelectedJob" value="1" onChange="this.form.submit()"<?php if ($iSelectedJob == 1) echo ' checked'; ?>><br />
	<input type="checkbox" name="iSelectedJob" value="2" onChange="this.form.submit()"<?php if ($iSelectedJob == 2) echo ' checked'; ?>><br />
	<input type="checkbox" name="iSelectedJob" value="3" onChange="this.form.submit()"<?php if ($iSelectedJob == 3) echo ' checked'; ?>><br />
</form>

Bitte klick mal auf folgende URL:

https://auswaerts.scd2003.de/test.php

Klick das erste Kästchen an - wird markiert. Klick direkt das zweite Kästchen an - wird auch markiert. Klick das dritte Kästchen an - wird ebenfalls markiert. Klickst du jetzt aber direkt das erste oder zweite Kästchen an, wird es nicht markiert - sprich man muss die letzte Checkbox erst deselektieren. Wie kann ich das umsetzen, dass ein springen in beide Richtungen direkt möglich ist?

Danke.
 
Abgesehen von der Reihenfolge, so wie es aussieht darf immer nur eine Box markiert sein. Warum nimmst du dann nicht ein Optionsfeld anstatt einer Checkbox.

Und wenn du schon mit Javascript arbeitest, warum aktivierst/deaktivierst du die Boxen dann nicht damit ohne die Seite abzuschicken?
 
Hi,

ich finde Checkboxen einfach schöner zumal das Aufwärts ja funktioniert. Wenn es generell nicht funktionieren würde, würde ich das ja nicht so machen. Weißt du denn wo meine Problematik liegt?

Das Formular muss abgeschickt werden, da PHP anschließend mit den POST-Variablen arbeiten muss. Ich nutze JavaScript ungerne und in dem Falle auch nur, weil es komfortabler ist und man nicht immer erst noch nach dem markieren einen Submit anklicken muss.
 
Also um ehrlich zu sein den wirklichen Grund weiß ich im Moment auch nicht. Es hängt aber damit zusammen das das onChange-Ereignis nur ausgelöst wird wenn du von oben nach unten markiertst.

Hiermit geht es aber:

Javascript:
<script language="javascript" type="text/javascript">
function box (nummer) {
	document.getElementsByName("iSelectedJob")[0].checked = false;
	document.getElementsByName("iSelectedJob")[1].checked = false;
	document.getElementsByName("iSelectedJob")[2].checked = false;

	document.getElementsByName("iSelectedJob")[nummer].checked = true;

	document.forms[0].submit();
}
</script>
<?php
$iSelectedJob = 0;
if (!empty($_POST['iSelectedJob']))
    $iSelectedJob = $_POST['iSelectedJob'];
?>

HTML:
<form action="test.php" method="post">
    <input type="checkbox" name="iSelectedJob" value="1" onclick="box(0)"<?php if ($iSelectedJob == '1') echo ' checked'; ?> /><br />
    <input type="checkbox" name="iSelectedJob" value="2" onclick="box(1)"<?php if ($iSelectedJob == '2') echo ' checked'; ?> /><br />
    <input type="checkbox" name="iSelectedJob" value="3" onclick="box(2)"<?php if ($iSelectedJob == '3') echo ' checked'; ?> /><br />
</form>
 
Vielleicht gibt es ein Problem, weil sich bei einem onChange ja zwei Radio-Buttons angesprochen fühlen, nämlich einer, der gecheckt wird und der andere, der den checked-Status verliert.
Kannst alternativ auch das onClick-Ereignis nutzen, sofern du nicht mit deaktivierten Radios arbeitest.
 

Neue Beiträge

Zurück