 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
14.08.2007, 19:36
|
#1
|
|
TP-Supporter
Registriert seit: Sep 2002
Ort: Zürich
|
2 Selectfelder im gleichen Formular
Hallo zusammen
Stehe wieder einmal am Berg und komme nicht weiter.
Folgendes Szenario:
2 Selectfelder die sich im gleichen <form> befinden und auch verschiedene Namen haben. Nun möchte ich nach dem senden über POST herausfinden aus welchem SELECT heraus was ausgewählt wurde. und dann dynamisch den übermittelten Inhalt in eine Variable schreiben.
Logischerweise werden ja immer die Werte beider select über POST übermittelt.
In dem Stil:
PHP-Code:
$test1 = $_POST[select_1];
$test2 = $_POST[select_2];
$test = $_POST[select_1] oder eben $_POST[select_2];
Wie stelle ich das an? If empty oder isset funktioniert nicht da immer beide Variablen da sind. Wie finde ich heraus aus welchem Select die Auswahl kommt?
Danke für eure Hilfe!
Gruss aus Zürich: Spin
|
|
|
14.08.2007, 19:40
|
#2
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
Wieso haben immer beide einen Übermittelten Wert?
Idr. lässt man den ersten Wert leer, oder übergibt eine 0.
Somit kann man doch ganz klar erkennen, ob bei einem, beiden oder keinem eine Auswahl erfolgte.
|
|
|
14.08.2007, 19:54
|
#3
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
genau das, dann reicht die Abfrage
if($_POST['select_1']) { ... }
|
|
|
14.08.2007, 19:59
|
#4
|
|
TP-Supporter
Registriert seit: Sep 2002
Ort: Zürich
|
Hallo
Ja normalerweise schon. Nur funktioniert das in diesem Fall nicht so. Mit den 2 Select werden Kategorien ausgewählt aus einer Datenquelle. Die Kategorien heissen aber nicht gleich da die Kategorienamen in der Quelle und im Ziel nicht die gleichen Namen tragen. Mit hilfe einer Tabelle werden sie verknüpft.
Das heisst Select_1 steht auf Wert A und Select_2 auf Wert K
Nun wird Select_1 auf Wert B gestellt und per JS wird das Form versendet.
Im POST für Select_1 steht jetzt der Wert B aber im POST für Select_2 steht der Wert K.
Hoffe du weisst was ich meine.
Gruss: Spin
|
|
|
14.08.2007, 20:02
|
#5
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
Klar wissen wir was du meinst.
Das ist aber normal, daher ja der Hinweis, dass man sich den ersten Wert leer lässt und was reinschreibt, wie "Bitte wählen", hierbei ist dann halt die Übergabe leer/0.
Wenn Du das nicht willst, musst Du nicht die Selectfelder in der Übergabe prüfen, sondern 2 hidden felder eintragen und diese via JS befüllen und zwar immer dann, wenn ein onchange von einem select feld ausgeführt wird.
|
|
|
14.08.2007, 23:48
|
#6
|
|
TP-Supporter
Registriert seit: Sep 2002
Ort: Zürich
|
2 Selectfelder
Hallo
Also habe jetz ein wenig rumprobiert und habe mich für die Lösung mit JS entschieden.
Habe nun folgende JS funktion geschrieben die bei onChange aufgerufen wird:
Code:
<head>
<script language="JavaScript">
function kat_uebergabe() {
document.form_navi.kat_auswahl.value = test;
form_navi.submit();
}
</script>
</head>
<body>
<?php echo $_POST[kat_auswahl];?>
<form id="form_navi" method="post" action="<?php echo $PHP_SELF;?>">
<select name="kat" size="1" onChange="javascript:kat_uebergabe()">
<option value="1">1</option>
<option value="1">2</option>
<option value="usw">usw</option>
</select>
<input name="kat_auswahl" type="hidden" value="">
</form>
</body>
Leider mache ich was falsch aber blick nicht durch. Weis jemand Rat von euch?
Der Submit ansich klappt. Das hidden Feld wird einfach nicht richtig befüllt.
Gruss: Spin
Geändert von Spin (15.08.2007 um 00:13 Uhr).
|
|
|
15.08.2007, 00:11
|
#7
|
|
TP-Moderator
Registriert seit: Aug 2004
Ort: Kaiserslautern
|
Hallo Spin,
schau dich doch mal etwas in den JS FAQ von Malleus um, dann findest Du sicher den ein oder anderen wertvollen Tipp. Alternativ auch mal dieses Beispiel anschauen.
Ansonsten würde es auch helfen, wenn Du deinen Code mal etwas sauberer verfasst. Stichwort: PHP Tags auf aber nicht wieder zu oder auch Form-Tag nach Body-Tag schliessen, kein Submit. 
__________________
#.Viele Grüße, Andreas
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
|
|
|
15.08.2007, 00:26
|
#8
|
|
TP-Supporter
Registriert seit: Sep 2002
Ort: Zürich
|
Sorry
Habs mal korrigiert. Ist wohl in der eile des Gefechts passiert.
Den submit möchte ich ja eben gerne in meiner Funktion ausführen nachdem der Wert gesetzt ist für das hidden Feld.
Gruss: Spin
|
|
|
15.08.2007, 02:00
|
#9
|
|
TP-Supporter
Registriert seit: Sep 2002
Ort: Zürich
|
Hallo zusammen
Problem gelöst es nagelt. Danke für eure Inputs.
Code:
function kat_uebergabe() {
document.form_navi.select_kat.value= 'Ep';
document.form_navi.submit();
}
So klappts wunderbar.
Gute Nacht
Gruss: Spin
|
|
|
15.08.2007, 02:17
|
#10
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
So richtig durchdacht es es ja nun auch nicht, immerhin soll ja nicht gleich ein Submit erfolgen, wenn ein Feld gewählt wurde.
Weiterhin ist onChange auch nicht so sinnig, denn es wird nicht ausgelöst, wenn man das erste Element nimmt, dieses ist ja schon gewählt und somit erfolgt keine Änderung.
Hier mal ein anderer Ansatz, der das machen sollte, was Du haben willst.
HTML-Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="de">
<head>
<script type="text/javascript">
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
oldonload();
func();
}
}
}
function getType(event) {
event = event || window.event;
return event.type;
}
function didChange()
{
var selection1 = document.getElementById('kat1');
selection1.onclick = function(event) {
if (getType(event) == "click") {
document.getElementById('kat1_auswahl').value = selection1.value
}
}
var selection2 = document.getElementById('kat2');
selection2.onclick = function(event) {
if (getType(event) == "click") {
document.getElementById('kat2_auswahl').value = selection2.value
}
}
}
addLoadEvent(didChange);
</script>
</head>
<body>
<?php
if(!empty($_POST['submit'])){
echo "Auswahl Feld1: $_POST[kat1_auswahl]<br />";
echo "Auswahl Feld2: $_POST[kat2_auswahl]<br />";
}
?>
<form id="form_navi" method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
<select name="kat1" id="kat1" size="1">
<option value="1">1</option>
<option value="2">2</option>
<option value="usw">usw</option>
</select>
<select name="kat2" id="kat2" size="1">
<option value="1">1</option>
<option value="2">2</option>
<option value="usw">usw</option>
</select>
<input name="kat1_auswahl" id="kat1_auswahl" type="hidden" value="">
<input name="kat2_auswahl" id="kat2_auswahl" type="hidden" value="">
<input type="submit" id="submit" name="submit" value="abschicken" />
</form>
</body>
</html>
Hier ein interessanter Link zu dem Thema.
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 07:27 Uhr.
|
 |