Supportnet Computer
Planet of Tech

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:
 <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

Antwort 3 von rfb

deine Problembeschreibung ist etwas wirr:
Zitat:
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

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

Antwort 8 von rfb

probier mal dies:
 <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.