Variable aus PHP übernehmen und Selectbox in JS bauen

  • #1
W

wibni

Bekanntes Mitglied
Themenersteller
Dabei seit
15.04.2005
Beiträge
71
Reaktionspunkte
0
Hallo,

ich habe 2 Arrays in PHP, welche Datumswerte beinhalten.
Beide Arrays gebe ich in Dropdownboxen aus.
Nun möchte ich, wenn ich einen Wert in der ersten Box auswähle in der zweiten Box nur ältere Datumswerte angezeigt bekomen.

Dazu dachte ich, die zweite Dropdownbox einfach als Function in Javascript zu schreiben und die Auswahl der ersten Dropdownbox als Variable zu übernehmen. Ist das überhaupt möglich?
Denn bisher kam ich noch zu keinem Ergebnis.

lG
Pia
 
  • #2
Also die Übergabe geht ja zumindest.
Warum wird mein altes Formular gelöscht und $anzahl auf einer leeren Seite ausgegeben?
Kann man die Variable nicht einfach an ein bestehendes Formaular anfügen?

<script language=JavaScript type=text/JavaScript>
<!--
function test(){
document.write('<?= $anzahl?>');
}
-->
</script>
 
  • #3
Probiers mal so:

Code:
<script language=javascript type=text/javascript>
// Object finden
function MM_findObj(n, d) { //v4.01
 var p,i,x; if(!d) d=document; if((p=n.indexOf(?))>0&&parent.frames.length) {
  d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
 if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
 for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
 if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function func1(f1, f2) {
	dat1 = f1;
	dat2 = MM_findObj(f2);
	var l = dat2.length;
	var x=0;
	while(x < l) {
		dat2.options[0] = null;
		++x;
	}
	var i=0;
	while(i < dat1.selectedIndex) {
		var option = new Option(dat1.options[i].text, dat1.options[i].value);
  	    dat2.options.add(option);
		++i;
	}
	
}
</script>
<?php
$arr = array(18.03.1961,25.01.1962,
			 20.11.1999,13.11.2001,
			 01.01.2004,20.10.2004,
			 17.12.2004,12.04.2005,
			 07.08.2005,22.09.2005);
for($i = 0; $i < count($arr); $i++) {
	$opt .= <option value='.$arr[$i].'>.$arr[$i].</option>;
}
?>

<form action=datum.php method=post name=form1>
 <select name=dat1 onChange=func1(this,->dat2') style=width:100 >
  <?php echo $opt; ?>
 </select> 
 <select name=dat2 style=width:100 ></select>
</form>

Allerdings ohne Gewähr ;D

gruss conny
 
  • #4
Hi Conny,

also hab Dein Beispiel mal umgesetzt und noch ne kleine änderung vorgenommen, damit er mir in der 2ten Dropdownbox die späteren Datumswerte anzeigt und nicht wie in Deinem Beispiel alle Datumswerte bis zum ausgewählten Datum in Box 1.

However, jedenfalls funktioniert es und ich habe keinen Schimmer was Du da machst.
Muss denn diese function MM_findObj(n, d) sein? Bei dieser Funktion kann ich gar net folgen. Aber sie prüft wohl, ob Dropdownbox 2 auch wirklich da ist, bzw sucht diese. Passiert irgendwas wenn die Box nicht da ist, bzw. ist diese Suche notwendig?

Und was sind die Übergabeparameter in function check_startdate(f1, f2)?
Also was ist f1 und f2? Was übergibst Du da?

Wieso ist bei dem onChange=->check_startdate(this, choice_enddate)' das this ein Übergabeparameter und was bewirkt es.

Und die letzte Frage: Was ist das für ein Oerator: $opt .=? Ich meine dieses .= und was bewirkt es?

Danke für Deine Hilfe. Habe bestimmt bald die nächste Frage...
;-)
 
  • #5
wibni schrieb:
Nun möchte ich, wenn ich einen Wert in der ersten Box auswähle in der zweiten Box nur ältere Datumswerte angezeigt bekomen.

soviel hierzu ;)

wibni schrieb:
damit er mir in der 2ten Dropdownbox die späteren Datumswerte anzeigt und nicht wie in Deinem Beispiel alle Datumswerte bis zum ausgewählten Datum in Box 1.

Ich hab ja nur gemacht was du wolltest ;D ;D

wibni schrieb:
Muss denn diese function MM_findObj(n, d) sein? Bei dieser Funktion kann ich gar net folgen. Aber sie prüft wohl, ob Dropdownbox 2 auch wirklich da ist, bzw sucht diese. Passiert irgendwas wenn die Box nicht da ist, bzw. ist diese Suche notwendig?

Da einige Browser unterschiedlich mit JavaScript umgehen, ist diese Funktion ganz nützlich um ein Object zu identifizieren.
Die Funktion wird von Dreamweaver schon mitgeliefert und erfüllt seinen Zweck eigentlich recht gut. Was da nun im einzelnen passiert, hat mich eigentlich noch nie interressiert, hauptsache es geht ;D

wibni schrieb:
ist diese Suche notwendig?

Nö, viele Wege führen nach Rom. Dir steht es frei es anders zu machen ;D

wibni schrieb:
Und was sind die Übergabeparameter in function check_startdate(f1, f2)?
Also was ist f1 und f2? Was übergibst Du da?

check_startdate ??? Die Funktion gibts in meinem Beispiel nicht ;)
f1 = ich selbst alse die erste Box. Da dieser Verweis auf das object mit dem Parameter this (ich selbst) übergeben wurde, braucht es auch nicht erst gesucht zu werden.
f2 = Name der 2. Box. Hier wird mittels der Funktion MM_findObj das passende Object zu dem Namen gesucht.

In beiden Fällen steht nun ein object zur Verfügung, dass ganz einfach über den zugewiesenen Namen (z.B. dat1 und dat2) angesprochen werden kann.

wibni schrieb:
Und die letzte Frage: Was ist das für ein Oerator: $opt .=? Ich meine dieses .= und was bewirkt es?

Zuweisungsoperatoren =>


gruss conny
 
  • #6
Thanks mate. Nun bin ich wieder bissl schlauer!
Bis zum naechsten mal...

Cheers!
 
Thema:

Variable aus PHP übernehmen und Selectbox in JS bauen

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben