Array an Funktion übegeben
dude
- javascript
hi leute,
ich möchte gerne den wert von einer bzw. mehreren checkboxen als array an eine java script funktion übergeben. folgendes funktioniert aber nicht:
function goto_event_cat() {
var ec = document.form_s.event_cat[0].value;
self.parent.location ="<? echo $PHP_SELF; ?>?pre=1&event_cat=" +ec;
}
<form method="post" name="form_s">
<input type="checkbox" name="event_cat[0]" value="1" onclick="goto_event_cat()">
<input type="checkbox" name="event_cat[1]" value="2" onclick="goto_event_cat()">
</form>
hi leute,
ich möchte gerne den wert von einer bzw. mehreren checkboxen als array an eine java script funktion übergeben. folgendes funktioniert aber nicht:
Nö, tust du nicht. Du benutzt lediglich den Operator als Bezeichner, was in JS zu Problemen führt.
function goto_event_cat() {
var ec = document.form_s.event_cat[0].value;
self.parent.location ="<? echo $PHP_SELF; ?>?pre=1&event_cat=" +ec;
Ich vermute mal im Browser kommt was anderes an?
}
<form method="post" name="form_s">
<input type="checkbox" name="event_cat[0]" value="1" onclick="goto_event_cat()">
<input type="checkbox" name="event_cat[1]" value="2" onclick="goto_event_cat()">
Wenn du schon den event hier einsetzt, kannst du mit this dir oben viel Arbeit ersparen und dem lästigen Problem das du da hast aus dem Weg gehen.
<input type="checkbox" name="event_cat[1]" value="2" onclick="goto_event_cat(this.form)">
function goto_event_cat(f) {
var ec = f['event_cat[0]'].value;
Die Frage kam aber schon tausendmal, das liegt an diesem seltsam Konstrukt für PHP, das m.W. nicht mal nötig ist, da du ja den Elementen gleiche Namen geben kannst und diese dann auch als Array beim CGI ankommen (sollten, in Perl tuns sie es auch).
Struppi.
aja,
und wie mache ich da wenn ich mehrere werte (arrays) gleichzeitig in die funktion übergeben will ?
aja,
und wie mache ich da wenn ich mehrere werte (arrays) gleichzeitig in die funktion übergeben will ?
an welche Funktion den und welches Array?
ich seh in deinem Quelltext keine Funktion, die einen Parameter erwartet. Und ich seh auch kein Array.
Struppi.
wie jetzt ???
wie wäre es denn mit >>>
<input type="checkbox" name="event_cat[0]" value="1" onclick="goto_event_cat()">
<<< als array und "goto_event_cat()" als funktion ???
wie jetzt ???
wie wäre es denn mit >>>
<input type="checkbox" name="event_cat[0]" value="1" onclick="goto_event_cat()">
<<< als array und "goto_event_cat()" als funktion ???
was als Array?
'<<<' ist eine Zeichenkette oder 1 1/2 Shift operatoren http://selfhtml.teamone.de/javascript/sprache/operatoren.htm#bits
und der funktion kannst du einfach so ein Array übergeben:
my arr = new Array();
func(arr);
du drückst dich nach wie vor nicht wirklich verständlich aus :-(
Struppi.
sorry, aber ich kenne mich nur mit php wirklich gut aus und dort wird, die checkbox:
<input type="checkbox" name="event_cat[0]"
value="1" onclick="goto_event_cat()">
wenn sie ausgewählt wurde, als array bzw. element eines arrays behandelt. wenn man also mehrere arrays auswählt sollten diese bzw. die werte in eine funktion übernommen werden.
ich weiß nicht was daran so unverständlich sein soll !!!
noch ne andere frage: wie werden eigentlich werte einer url (in der eingabezeile) z.b. http://domain.php?wert=1 (hier also "wert") in eine javascript funktion übernommen !
sorry, aber ich kenne mich nur mit php wirklich gut aus und dort wird, die checkbox:
<input type="checkbox" name="event_cat[0]"
value="1" onclick="goto_event_cat()">wenn sie ausgewählt wurde, als array bzw. element eines arrays behandelt. wenn man also mehrere arrays auswählt sollten diese bzw. die werte in eine funktion übernommen werden.
ich weiß nicht was daran so unverständlich sein soll !!!
Ich weiß nicht was du wem übergeben willst?
Das was du da oben beschreibst ist ein besonderes, in meinen Augen unglückliches Feature von PHP, in JS (und auch in Perl) bekommst du ein Array, wenn du den Elementen gleiche Namen gibst (ich glaub das erwähnte ich bereits).
<input type="checkbox" name="event_cat"
value="1" onclick="goto_event_cat()">
<input type="checkbox" name="event_cat"
value="2" onclick="goto_event_cat()">
und wenn du dieses als Array haben willst übergibst du es einfach so:
<input type="checkbox" name="event_cat"
value="2" onclick="goto_event_cat(this.form['event_cat'])">
im CGI Skript
@event_cat = param('event_cat'),
noch ne andere frage: wie werden eigentlich werte einer url (in der eingabezeile) z.b. http://domain.php?wert=1 (hier also "wert") in eine javascript funktion übernommen !
siehe selfhtml http://selfhtml.teamone.de/javascript/objekte/location.htm#search
Struppi.
ein frage hätte ich nun noch. wie übergebe die übermittelten werte
nach einer aktion (durch klicken auf):
<input type="checkbox" name="event_cat"
value="2" onclick="goto_event_cat(this.form['event_cat'])">
als array in die funktion:
function goto_event_cat(f) {
ev = new Array(f);
self.parent.location ="<? echo $PHP_SELF; ?>?pre=1&event_cat=<? echo $ec; ?>" +ev;
}
übergeben werden und diese dann in > ev < angezeigt werden !!!
sorry wenn es ein bißchen komisch formuliert ist !
ein frage hätte ich nun noch. wie übergebe die übermittelten werte
nach einer aktion (durch klicken auf):<input type="checkbox" name="event_cat"
value="2" onclick="goto_event_cat(this.form['event_cat'])">als array in die funktion:
function goto_event_cat(f) {
f ist schon ein Array (wenn es mehrere 'event_cat' Buttons gibt)
(es ist auch nicht wirklich ein Array es ist eine collection)
alert(f.length)
ev = new Array(f);
self.parent.location ="<? echo $PHP_SELF; ?>?pre=1&event_cat=<? echo $ec; ?>" +ev;
}
übergeben werden und diese dann in > ev < angezeigt werden !!!
hmm, das geht so nicht. Du musst das Formular per post verschicken, du kannst höchstens:
for(var i = 0 ; i < f.length;i++)
param += '&' + f.name +'='+f[i].value;
die Url zusammenbasteln.
Struppi.