Archiv verlassen und diese Seite im Standarddesign anzeigen : Übergabe von <select> elementen
wenn ich in php auf die elemente eines durch ein formular gesendeten <select> zugreiffen will, muss ich ja im namen des selects [] haben.
z.b. so:
<select multiple name="bier[]">
<option value="binding">Binding</option>
<option value="warsteiner">Warsteiner</option>
<option value="stauder">Stauder</option>
<option value="stuttgarter">Schwabenbräu</option>
</select>
ich will das select aber zuvor auch mit JS ansprechen und das lässt [] in namen nicht zu.
gibt es eine andere variante?
mit PHP kannste afaik das Problem ned lösen bzw. es geht ned anders als dieses []! Eine anderer Lösungsansatz ist jedoch, dass du die Werte mit der Submit URL übergibst...
so long
cYrus
schade
also du meinst, dass ich die submit url per javascript zusammenbastle?
ned per JS, lieber mit PHP -> läuft stabiler..
so long
cYrus
öhm, wie soll denn das gehen, wenn ich die gar ned senden kann?
php kann ja nur was machen beim seitenaufbau, ned zur laufzeit.
ich versteh dich vermutlich falsch könntest du mal die Frage genauer definieren?
so long
dj-cYrus
Computer: "bitte spezifizieren sie."
ok
was meinst du damit genau:
Original von DJ Cyrus
Eine anderer Lösungsansatz ist jedoch, dass du die Werte mit der Submit URL übergibst...
also ich habe bis jetzt angenommen, dass du alle möglichen Antworten in einem Select mitnehmen möchtest - oder wie meinst du das?
greez
cYrus
genau, richtig
wenn mans per GET übertragen würde, würde die url dann z.b. so aussehen:
ziel.php?bier=binding&bier=warsteiner
also wenn ichs ohne [] mache.
ziel.php?bier=binding&bier=warsteiner
jo genau das hatte ich gemeint.. aber was is jetzt das Prob?
so long
dj-cYrus
damit kann ja php eben ned umgehen
weil $bier dann immer überschrieben wird und zuletzt einfach den wert des letzten parameters ´bier´ enthält (hier warsteiner)
jo aber wieso nimmste ned ne andere Variable?
wofür ne andere varibale? wie ne andere variable?
der name ´bier´ wird ja durch den namen des html select-tags bestimmt.
und auch wenn ich dem nen anderen namen geb, es haben immer noch alle options den selben variablenname. und in php einbinden tu ich den parameter ja, indem ich $namedesparameters nehm.
also ich dachte du nimmst in der URL die Namen selber rein ;)
so long
dj-cYrus
und wie soll ich das hinbringen?
action="ziel.php&meinbier=blabla"
ich hab das doch im select, schon vergessen? *fg*
bitte closed mal den Thread sami soll einen neuen beginnen und dann mit ner anstöndigen Beschreibung!
@sami Ich peils ned bitte drück dich mal richtig aus :D und dann darfste hier weida schreiben - langsam gehst du mir echt auf die Nerven ;) :D
so long
dj-cYrus
bla
also, ich beschreibs nochmals schön langsam:
ich hab eine html datei.
sie beinhaltet ein formular.
dieses formular beinhaltet folgendes select:
<select multiple name="bier">
<option value="binding">Binding</option>
<option value="warsteiner">Warsteiner</option>
<option value="stauder">Stauder</option>
<option value="stuttgarter">Schwabenbräu</option>
</select>
ich greiffe in eben dieser html-datei per javascript auf dieses select zu und verändere es.
deshalb darf der name des selects kein [] enthalten.
danach sende ich das formular an eine php datei ab.
in dieser php-datei will ich _alle_ optionen ausgeben, die im select in der html-datei selektiert waren.
php will aber dazu, dass der name des selects in der html-datei auf [] endet, damit php es als array behandelt.
[] dürfen aber nicht enthalten sein in dem namen, weil ich ja per javascript drauf zugreiffe zuvor *wiederhol*
meine frage: wie lös ich das nun?
ach du willst mit JS die Werte verändern. Hmm dann kannste das ned met PHP voraus generieren. Bzw. Ich hab keine Lösung mehr parat is halt en blöder Konflikt der beiden Sprachen! Mal schaun vielleicht weiss Bauchi oder sonst wer ne Lösung..
so long
dj-cYrus
ich habs jetzt 3x gelesen .. aber ich checks immer noch nicht *G*
ich werd dann mal heimfahren, ein bier trinken und schauen was sami überhaupt meint *G*
aber sollte nicht so schlimm sein ... ;-)
also ich habs jetzt 10 mal gelesen und checke es.. aber ne Lösung hab ich noch ned..
so long
dj-cYrus
also ich hab jetzt ein bisschen rumge-kot-et ... und mir ist nix eingefallen was DEIN Problem löst :evil:
die einzige möglichkeit die ich sehe ist.... den javascript scheiss wegzulassen ...
einige browser (lynx z.b.) mögen eh kein javascript..
und ich pers. bin der meinung, das eine site auch ohne so nen kram auskommen muss ...
mir egal, ob lynx das mag
es handelt sich dabei um eine adressapplikation, von der ich die benutzer und ihre browser genau kenne.
das js is unmöglich weg zu lassen.
keine angst, ich setz js schon ned unnötig ein und wenn ich ne antwort wie "lass es einfach sein" will, werde ich in der linux newsgroup posten. ;)
die frage war ned, was ich weglassen soll, sondern, wie man das problem löst. :P
ich will dir ja kein js verbieten ...
ich bin nur der meinung, das ordentliche sites auch ohne die aktiven hilfen funzen sollten ..
aber ... das ist wohl eher eine philosophie frage .. nicht wahr *G*
wie gesagt, es geht ned einfach um ne "ordentliche site". da bin ich auch der meinung, dass sie js nur soweit verwenden, dass die site auch ohne die js elemente anständig brauchbar ist.
was ich hier mache würde ich wirklich eher als applikation als einfach als website bezeichnen.
bin ziemlicher newbie, aber vielleicht hilft dir das ja weiter.
<?php
$arr = "werte[]";
if ($abdamit){
$len = sizeof($werte);
for ($i=0; $i<$len; $i++){
echo "$werte[$i]";
}
}
echo "<form action=\"$PHP_SELF\" method=\"post\">"
."<select multiple name=\"$arr\">"
."<option name=\"$arr\" value=\"binding\">Binding</option>"
."<option name=\"$arr\" value=\"warsteiner\">Warsteiner</option>"
."<option name=\"$arr\" value=\"stauder\">Stauder</option>"
."<option name=\"$arr\" value=\"stuttgarter\">Schwabenbräu</option>"
."</select>"
."<input type=\"submit\" value=\"submit\" name=\"abdamit\"></form>";
?>
irgendwie spinnt das board mit der darstellung der ".
Felix Kaiser
12.02.2002, 23:44
wenn ichs richtig geschnallt hab sollte das helfen:
<?php
function GetMultipleOption($query,$name)
{
$qs = split("[&]",strtolower($query));
$res = new Array();
for ($i = 0; $i < count($qs); $i++) {
$x = split("[=]",$qs[$i]);
if ($x[0] == $name) array_push($res,$x[1]);
}
return $res;
}
$biere = GetMultipleOption($QUERY_STRING,"bier");
?>
$biere ist dann ein Array der alle selektierten Biere enthält :)
mhh mal ne doofe frage
wird denn $QUERY_STRING noch unterstützt/verfügbar sein von php4.1.x wenn ich register globals auf off schalte ??
hintergrund:
in den sensiblen bereichen unserer firma, auf die mit webinterfaceses zugegriffen wird, läuft überall php 4.1.1
weil dort bessere features integriert sind, gegen manipulation ... also .. das man $PHP_AUTH_USER nicht einfach als ein ´GET-Argument´ übergeben kann etc.
Felix Kaiser
13.02.2002, 17:58
Gute Frage, was wäre denn ein Ersatz für $QUERY_STRING? Und gut dass du mich an 4.1.1 erinnerst, kann ich meinen Apache gleich mal patchen und den Mist testen.
keine ahung ... :-/
ich weiss nur das ab 4.1.X durch die sicherheits features natürlich auch viel bequemes wegfällt :-(
werd mir mal die rel. notes reinziehen :-D
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.