mit select auswahl andere felder steuern
alex
- javascript
Hallo.
habe ein formular, in dem es folgende felder gibt:
<select name="name">...</select>
<select name="tag">...</select>
<select name="monat">...</select>
<select name="jahr">...</select>
<select name="ort">...</select>
die felder zu "name" werden von einer datenbank gefüllt. zusätzlich gibt es dort die auswahlmöglichkeit "andere". wenn diese selektiert ist, sollen die anderen <select> felder änderbar sein. ansonsten sollen sie immer den passenden eintrag aus der datenbank zum feld "name" haben.
hat jemand sowas schon gemacht oder kann mir da weiterhelfen? schaffe es nicht, mehrere felder gleichzeitig zu ändern und auch das mit dem readonly stellt mich vor ein größeres problem.
kann mir jemand mit tipps, ratschlägen oder sonstigen nützlichen infos weiterhelfen?
danke!
Hallo Alex,
Mit readonly ist da nichts zu machen, disabled waere die bessere Option, sieht aber nicht sehr gut aus.
Probier mal diese Seite aus, das sollte eigentlich helfen:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script language="JavaScript1.3">
function enable(sender){
if (sender.options.selectedIndex==3){ // zum Beispiel
document.getElementById('test').disabled=false;
}
else {
document.getElementById('test').disabled=true;
}
}
</script>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form name="form1" method="post" action="">
<select name="select" disabled id="test">
<option>z</option>
<option>y</option>
<option selected>x</option>
<option>v</option>
<option>u</option>
</select>
<select name="sonstwas" id="wasandres" onchange="enable(this)">
<option>a</option>
<option>b</option>
<option>c</option>
<option>d</option>
<option>e</option>
</select>
</form>
</body>
</html>
Dieter
Danke,
das hat mir in punkto disabled / readonly wirklich weitergeholfen!
nur wie mache ich das, dass das verändern eines <select> feldes den "selected" status von drei oder vier anderen <select> feldern ändert?
Hallo Alex,
function enable(sender){
if (sender.options.selectedIndex==3){ // zum Beispiel
document.getElementById('test').disabled=false;
document.getElementById('test').options[2].selected=true
}
// [2] index der ausgewaehlten option in 'test', angefangen mit 0
// fuer andere felder analog wiederholen
else {
document.getElementById('test').disabled=true;
}
}
Die Loesung, jedes <select> Element einzeln anzusprechen ist nicht sehr elegant, aber einigermassen verstaendlich
Dieter
Danke,
so könnte ich <select> felder über den index ansprechen, und wie würde das lauten, wenn ich zb in einem <input> feld einen bestimmten inhalt darstellen will, der aus einer db kommt und gerade in einer php variable steht?
habe auch php variablen, die dem "value" entsprechen und ich würde viel lieber diesen irgendwie mit der php variablen vergleichen, als über das x. element im select zu gehen. aber kann ich javascript-variablen und php variablen miteinander vergleichen??
Danke nochmals für alles bisher, nur ist das auch lösbar?