Supportnet / Forum / Skripte(PHP,ASP,Perl...)
checkbox wert zuweisen
Frage
hallo leute.
habe ein problem mit checkboxen und nicht echt die riesenahnung. such mir nen wolf und finde keine lösung. hier mal mein script-schnipsel:
<------
<form action="av_confirm.php" method="post" name="Formular">
<input type="radio" name="av_versand" value="6,20">VERSICHERTER BRIEF .....<b>6,20€</b><br>
<input type="radio" name="av_versand" value="8,20" checked>NACHNAHME. ................<b>8,20€</b><br>
******dann kommt noch ne checkbox************
input type="radio" name="av_zahlung" value="nachnahme" checked> NACHNAHME<br>
<input type="radio" name="av_zahlung" value="ueberweisung"> ÜBERWEISUNG<br>
</form>
----->
******jetzt möchte ich der zweiten checkbox (av_zahlung) den wert "nachnahme" zuweisen, wenn in der ersten checkbox (av_versand) der wert "8,20" ausgewählt ist.
wie mache ich das dann??? bitte um hilfe
danke vorab
gruss
rofo
Antwort 1 von rfb
dies im head:
und dies in den oberen input-Feldern:
und schon sollte es klappen sofern JavaScript aktiviert ist
<script type="text/javascript">
<!--
function porto() {
if (document.forms["Formular"].elements["av_versand"][1].checked == true)
document.forms["Formular"].elements["av_zahlung"][0].checked = true;
}
//-->
</script>und dies in den oberen input-Feldern:
<input type="radio" name="av_versand" value="..." onchange="porto()">und schon sollte es klappen sofern JavaScript aktiviert ist
Antwort 2 von rofo67
hallo rfb (und leser dieses beitrags)
dein lösungsvorschlag klappt nur bedingt. (script hatte ich bereits aktiviert)
kann bei zweimaligem wechsel dennoch weiterklicken, ohne das "nachnahme" in der zweiten checkbox (bei "nachnahme" in der ersten checkbox) gewählt ist. hier nochmal mein script (modifiziert):
******************
<body>
<script type="text/javascript">
function porto() {
if (document.forms["Formular"].elements["av_versand"][1].checked == true)
document.forms["Formular"].elements["av_zahlung"][0].checked = true;
alert("Bei Nachnahmeversand bitte als Zahlweise Nachnahme wählen");
return false;
}
</script>
<form action="av_confirm.php" method="post" name="Formular">
<input type="radio" name="av_versand" value="6,20" onchange="porto()">
VERSICHERTER BRIEF <b>6,20€</b><br>
<input type="radio" name="av_versand" value="8,20" checked onchange="porto()"> NACHNAHME <b>8,20€</b><br>
<input type="radio" name="av_versand" value="14,20" onchange="porto()"> EILBOTE<b>14,20€</b><br>
<input type="radio" name="av_versand" value="16,20" onchange="porto()">EILBOTE NACHNAHME <b>16,20€</b><br>
<p>
<input type="radio" name="av_zahlung" value="nachnahme" checked> NACHNAHME<br>
<input type="radio" name="av_zahlung" value="ueberweisung"> ÜBERWEISUNG<br>
<input type="radio" name="av_zahlung" value="online"> ONLINE<br>
<input type="radio" name="av_zahlung" value="post"> POSTANWEISUNG<br>
</p>
<input type="submit" name="submit" value="WEITER">
</form>
</body>
***********************
bin dankbar für jeden lösungsvorschlag. probiere schon ziemlich lange rum.
danke
gruss rofo
dein lösungsvorschlag klappt nur bedingt. (script hatte ich bereits aktiviert)
kann bei zweimaligem wechsel dennoch weiterklicken, ohne das "nachnahme" in der zweiten checkbox (bei "nachnahme" in der ersten checkbox) gewählt ist. hier nochmal mein script (modifiziert):
******************
<body>
<script type="text/javascript">
function porto() {
if (document.forms["Formular"].elements["av_versand"][1].checked == true)
document.forms["Formular"].elements["av_zahlung"][0].checked = true;
alert("Bei Nachnahmeversand bitte als Zahlweise Nachnahme wählen");
return false;
}
</script>
<form action="av_confirm.php" method="post" name="Formular">
<input type="radio" name="av_versand" value="6,20" onchange="porto()">
VERSICHERTER BRIEF <b>6,20€</b><br>
<input type="radio" name="av_versand" value="8,20" checked onchange="porto()"> NACHNAHME <b>8,20€</b><br>
<input type="radio" name="av_versand" value="14,20" onchange="porto()"> EILBOTE<b>14,20€</b><br>
<input type="radio" name="av_versand" value="16,20" onchange="porto()">EILBOTE NACHNAHME <b>16,20€</b><br>
<p>
<input type="radio" name="av_zahlung" value="nachnahme" checked> NACHNAHME<br>
<input type="radio" name="av_zahlung" value="ueberweisung"> ÜBERWEISUNG<br>
<input type="radio" name="av_zahlung" value="online"> ONLINE<br>
<input type="radio" name="av_zahlung" value="post"> POSTANWEISUNG<br>
</p>
<input type="submit" name="submit" value="WEITER">
</form>
</body>
***********************
bin dankbar für jeden lösungsvorschlag. probiere schon ziemlich lange rum.
danke
gruss rofo
Antwort 3 von rfb
deine Problembeschreibung ist etwas wirr:
Was wechselt und wo wird weitergeklickt??
Bei mir hat meine Veresion problemlos geklappt.
Wozu dient "return false"?
Ansonsten:
Das Script sollte in den head-Bereich (also vor </head> und nicht in den body, zudem haben auch die <!-- und //--> ihren Sinn)
Zitat:
kann bei zweimaligem wechsel dennoch weiterklicken
kann bei zweimaligem wechsel dennoch weiterklicken
Was wechselt und wo wird weitergeklickt??
Bei mir hat meine Veresion problemlos geklappt.
Wozu dient "return false"?
Ansonsten:
Das Script sollte in den head-Bereich (also vor </head> und nicht in den body, zudem haben auch die <!-- und //--> ihren Sinn)
Antwort 4 von rofo
sorry , das alles so wirr ist.
wenn man in der zweiten box auf nachnahme und dann auf nen anderen wert gehe kann ich das formular doch noch senden. also ein user der dann so dumm wie ich ist, könnte durch erneutes klicken auf einen anderen wert das formaular mit nem anderen wert als "nachnahme" in der zweiten box schicken. soweit ich dein script verstehe reagiert es nur auf änderungen. trotzdem kann ich bei erneutem klick nach dem alert mit anderem wert schicken. die funktion muss auf jeden fall gegeben sein, dass ich bei "nachnahme in der ersten box nur mit "nachnahme" in der zweiten box abschicken kann. (wird glaub ich immer verwirrender. für mich auf jeden fall. sehe den wald vor lauter bäumen nicht mehr) also nochmals: bei nachname in der ersten box darf nicht (auch nicht durch erneutes auswählen) ein anderer wert in der zweiten box abgeschickt werden. probier mal bitte mit meinem script. trotzdem erst mal tausend dank, dass du dich überhaupt meinem problem widmest. und nochmal sorry. aber hänge echt schon zwei tage(nächte) mit dem *Z*.
gruss rofo
wenn man in der zweiten box auf nachnahme und dann auf nen anderen wert gehe kann ich das formular doch noch senden. also ein user der dann so dumm wie ich ist, könnte durch erneutes klicken auf einen anderen wert das formaular mit nem anderen wert als "nachnahme" in der zweiten box schicken. soweit ich dein script verstehe reagiert es nur auf änderungen. trotzdem kann ich bei erneutem klick nach dem alert mit anderem wert schicken. die funktion muss auf jeden fall gegeben sein, dass ich bei "nachnahme in der ersten box nur mit "nachnahme" in der zweiten box abschicken kann. (wird glaub ich immer verwirrender. für mich auf jeden fall. sehe den wald vor lauter bäumen nicht mehr) also nochmals: bei nachname in der ersten box darf nicht (auch nicht durch erneutes auswählen) ein anderer wert in der zweiten box abgeschickt werden. probier mal bitte mit meinem script. trotzdem erst mal tausend dank, dass du dich überhaupt meinem problem widmest. und nochmal sorry. aber hänge echt schon zwei tage(nächte) mit dem *Z*.
gruss rofo
Antwort 5 von rfb
setz einfach das
onchange="porto()" in alle <input ...>, dann wird halt bei jeder Gelegenheit geprüft, ob Nachnahme oben angeklickt ist.Antwort 6 von rfb
ach so: den alert und das return false ist dann überflüssig (ist letzteres sowieso)
Antwort 7 von rofo
tausend dank.
ist zwar noch nicht die perfekte lösung aber mit dem alert bleibt dem anwender ja bald keine andere wahl. return false habe ich rausgenommen, lasse aber den alert drin. auch wenns nervt.
kann man nicht dem wert av_zahlung mit nem "if " value box1= "nachnahme" über "set.value(???)" oder so zuweisen, das bei nachnahme box1 (av_versand) automatisch box2 (av_zahlung)auch nachnahme hat??
falls es eine bessere lösung gibt bin ich sehr dankbar, wenn sie jemand veröffentlicht.
danke rfb!!!
hast mir auf jeden fall erstmal geholfen. dachte halt nur das es irgendwie moeglich sein muesste. finde aber selbst nichts. bin aber auch, wie eingangs erwähnt, nicht echt ein profi
hoffe das unsere beiträge auch anderen nützlich sind
gruss rofo
ist zwar noch nicht die perfekte lösung aber mit dem alert bleibt dem anwender ja bald keine andere wahl. return false habe ich rausgenommen, lasse aber den alert drin. auch wenns nervt.
kann man nicht dem wert av_zahlung mit nem "if " value box1= "nachnahme" über "set.value(???)" oder so zuweisen, das bei nachnahme box1 (av_versand) automatisch box2 (av_zahlung)auch nachnahme hat??
falls es eine bessere lösung gibt bin ich sehr dankbar, wenn sie jemand veröffentlicht.
danke rfb!!!
hast mir auf jeden fall erstmal geholfen. dachte halt nur das es irgendwie moeglich sein muesste. finde aber selbst nichts. bin aber auch, wie eingangs erwähnt, nicht echt ein profi
hoffe das unsere beiträge auch anderen nützlich sind
gruss rofo
Antwort 8 von rfb
probier mal dies:
Unterschied: Prüfung beim Absenden mit evtl. Korekturmöglichkeit oder nettem Hinweis.
<html>
<head>
<title>Hauptseite</title>
<script type="text/javascript">
<!--
function porto() {
var los=true;
if (document.forms["Formular"].elements["av_versand"][1].checked == true) {
if (document.forms["Formular"].elements["av_zahlung"][0].checked == false) {
los=false;
if (confirm("Sie haben Nachnahme als Versandart gewählt, soll dies auch die Zahlungsart sein?")) {
document.forms["Formular"].elements["av_zahlung"][0].checked = true;
los=true;
}
else alert("Bitte wählen Sie eine andere Versandart");
}
}
return los;
}
//-->
</script>
</head>
<body>
<form action="av_confirm.php" method="post" name="Formular" onsubmit="return porto()">
<input type="radio" name="av_versand" value="6,20">VERSICHERTER BRIEF .....<b>6,20</b><br>
<input type="radio" name="av_versand" value="8,20" checked>NACHNAHME. ................<b>8,20</b><br>
<input type="radio" name="av_zahlung" value="nachnahme" checked> NACHNAHME<br>
<input type="radio" name="av_zahlung" value="ueberweisung"> ÜBERWEISUNG<br>
<input type="submit" value="los">
</form>
</body>
</html>Unterschied: Prüfung beim Absenden mit evtl. Korekturmöglichkeit oder nettem Hinweis.

