Antworten auf deine Fragen:
Neues Thema erstellen

Antworten zum Thema „Mehre array indexe über select abschicken“

rey

Der Frager ;)

Mehrere array indexe über select abschicken

Hi,
ich habe eine Formular welche eine Selectbox beinhaltet.
In dieser bekommt die Value einen ausgelesenen array
Beispiel
PHP:
$t = array("test1","test2");
$v = array("test3","test4");
echo "<form .... >
<select name =testen[] >
<option value=$t[0] >$t[0] & $t[1] </option>
<option value=$v[0] >$v[0] & $v[1] </option>
</select>
</form>
somit wäre die Ausgabe des Array
Array
(
[0] => test1
)
ich möchte aber
das ich eben bei $t im select mit gebe
das also bei der ausgabe es dann so aussehen soll
Array
(
[0] => test1
[1] => test2
)
geht das mit einem einfachen select feld ich würde nämlich gerne ein Multiple vermeiden.?
 
Zuletzt bearbeitet:

saila

Moderatorle

AW: Mehre array indexe über select abschicken

Hi,

um ein Select-tag zu erzeugen mit zwei Array's, wobei die Select-Option's als Values beide Values aus den Array's beinhalten, müsstest du zuerst die Array's
- zusammenlegen,
- auf doppelte Werte prüfen und ggf. entfernen

und dann eine foreach-Schleife erstellen, welche als Array das neue Array (aus beiden (t und v)) erhält.
 

rey

Der Frager ;)

AW: Mehrere array indexe über select abschicken

bis zur foreach schleife verstehe ich alles und habe es auch umgesetzt ;)
aber damit habe ich es immer noch nicht gelöst, weil ich ja dann immer noch nicht zwei Indexe pro Option Feld abschicken kann.
wenn ich es abschicke stehen die beiden werte in einem index
 
Zuletzt bearbeitet:

Chickenshooter

Alter Mann

AW: Mehre array indexe über select abschicken

Dein HTML erzeugt das hier

was wenn man frgaen darf soll das den werden?

was soll in deinen Optionen drinne stehen und was in in den Attr.
Value der Optionen????

MfG
 

rey

Der Frager ;)

AW: Mehre array indexe über select abschicken

Ja meine Auswahl erzeugt das

und der Quelltext schaut dann so aus wenn man Ihn sich anzeigen lässt
Code:
<form action="next.php" method="post">
Winner: <select name="testen[]">
<option value="test1test2">test1 &amp; test2</option>

<option value="test3test4">test3 &amp; test4</option>
</select>
<input name="submit" value="next" type="submit">
</form></body></html>
somit habe ich nach dem post den aufbau des testen arrays
Array
(
[0] => test1test2
)
der aufbau sollte aber so sein
Array
(
[0] => test1
[1] => test2
)
Eine Möglichkeit wäre es glaube ich in eine Session zu speichern.
 
Zuletzt bearbeitet:

Chickenshooter

Alter Mann

AW: Mehre array indexe über select abschicken

Setze eine Zeichenkette zusammen zB.

PHP:
$str = "0:" .$z[0]. "|2:" .$z[2];
dann dieses

PHP:
$opt = '<option value=" '.$str.' ">'.$z[0].'&amp;'.$z[2].'</option>';
Dann kannst Du den post mit split per php wieder zerlegen und auswerten.


edit:
"0:team1|2:team3" ist der post string
trenne zuerst mit dem delemiter |
und dann jeden einzelenen Eintrag des estandenen Arrays
mit : als delemiter.

MfG
 
Zuletzt bearbeitet:

rey

Der Frager ;)

AW: Mehre array indexe über select abschicken

Setze eine Zeichenkette zusammen zB.

PHP:
$str = "0:" .$z[0]. "|2:" .$z[2];
dann dieses

PHP:
$opt = '<option value=" '.$str.' ">'.$z[0].'&amp;'.$z[2].'</option>';
Dann kannst Du den post mit split per php wieder zerlegen und auswerten.

MfG
den Gedanken hatte ich auch schon aber wenn ein Inhalt des array mal zufällig genau dieses Zeichen ist gibt es ein Problem.
 

saila

Moderatorle

AW: Mehre array indexe über select abschicken

naja, du musst da für den option-value ein Trenner setzen um später auch die Vararbeitung besser zu ermöglichen:
Code:
<option value="<?php echo $t[0]; ?>,<?php echo $v[0]; ?>">was auch immer</option>
Bei der Verarbeitung kannst du dann über das , die Values exploden. Oder preg_match oder was auch immer du dazu nehmen möchtest.

Allerdings würde ich da wohl eher zwei select-tag's ansetzen und diese per Ajax verarbeiten - ob in DB oder Session ist ja erst mal egal.
 

rey

Der Frager ;)

AW: Mehre array indexe über select abschicken

wie gesagt Trenner ist das erste was ich vor hatte aber da gibt es halt die Möglichkeit das das Zeichen schon vorkommt.
und dann ist es etwas blöd weil dann der Inhalt nicht mehr stimmt.
Naja ich habe mir eine 50 zeichen langen trenner ausgedacht und nach dem werde ich dann exploden.
da die maximal Zeichen länge pro array Eintrag 49 sind ist mein trenner 50 Zeichen lang :)
 
Zuletzt bearbeitet:

Chickenshooter

Alter Mann

AW: Mehre array indexe über select abschicken

codiere den Text mit base64_encode ( string $data ) indem unter
Umständen diese Trenner vorkommen könnten der Codierte String
enthält diese beiden trenner nicht.
 

saila

Moderatorle

AW: Mehre array indexe über select abschicken

wie gesagt Trenner ist das erste was ich vor hatte aber da gibt es halt die Möglichkeit das das Zeichen schon vorkommt.
und dann ist es etwas blöd weil dann der Inhalt nicht mehr stimmt.
Naja ich habe mir eine 50 zeichen langen trenner ausgedacht und nach dem werde ich dann exploden.
da die maximal Zeichen länge pro array Eintrag 49 sind ist mein trenner 50 Zeichen lang :)

Naja, willst du nun das Formular so aufbauen oder nicht? Wenn ja, dann muss eben ein Trenner rein. Ob dieser nun , oder ; oder / oder | oder wie auch immer aussieht, ist ja letztlich wurscht. Wichtig ist nur, das er durch $_POST['select_tag_name'] per explode aufgetrennt wird.

Wenn dein Wert nicht 49 übersteigen darf, dann musst du ihn eben anpassen oder die Prüfung diesbezüglich erneuern oder ergänzen.

Also etwas mehr flexibilität wäre schon von Vorteil ;)
 

sharkandy

Noch nicht viel geschrieben

AW: Mehre array indexe über select abschicken

@rey: Vielleicht solltest du mal überlegen, ob deine "Schlüssel" (also der Value Teil in den <Select Tags) so sinnvoll sind, wenn Sie so lang und so beliebeig aufgebaut werden dürfen.

Vielleicht wäre ggf. der Variablenname (V und T bei dir) und dann der Index (alsos bei dir 0 und 1) der richtige Schlüssel. Dann hättest du auch keine Probleme mit der Auswahl eines Trennzeichens ... also z.B.

$t = array("test1","test2");
$v = array("test3","test4"
);
echo
"<form .... >
<select name =testen[] >
<option value=\"t0|t1\">" . $t[0] . "&" . $t[1] . "</option>
<option value=\"v0|v1\">" . $v[0] . "&" . $v[1] . "</option>
</select>
</form> "


Dann sollte es auch mit einen explode("|",...) klappen.

Gruß

Andreas
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
175.182
Beiträge
2.582.054
Mitglieder
67.254
Neuestes Mitglied
MKP
Oben