php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 21-06-2008, 18:09
kjhofmann
 Registrierter Benutzer
Links : Onlinestatus : kjhofmann ist offline
Registriert seit: Mar 2006
Beiträge: 61
kjhofmann ist zur Zeit noch ein unbeschriebenes Blatt
Standard Listenfed mit Mehrfachauswahl

Hallo,
Wie erhalte ich die Werte einer Mehrfachauswahl in einem Listenfeld in einem Formular.
Ich bekam nur immer den letzten Wert, will aber alle ausgewählten Werte.

Ich habe es auch mit einem Array probiert, geht auch nicht.

Zitat:
$Wert[] = $_POST['Wert'];
Gruß, Hoffi
__________________
Gruß Hoffi aus Radeberg
Mit Zitat antworten
  #2 (permalink)  
Alt 21-06-2008, 18:23
lennart
 PHP Junior
Links : Onlinestatus : lennart ist offline
Registriert seit: May 2007
Ort: Hamburg
Beiträge: 565
lennart ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Schau doch mal was dir folgendes zeigt:

PHP-Code:
echo "<pre>";
print_r($_POST);
echo 
"</pre>"
Mit Zitat antworten
  #3 (permalink)  
Alt 21-06-2008, 19:50
kjhofmann
 Registrierter Benutzer
Links : Onlinestatus : kjhofmann ist offline
Registriert seit: Mar 2006
Beiträge: 61
kjhofmann ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
echo "<pre>";
print_r($_POST['Wert']);
echo "</pre>";
Es wird auch hier nur der letzte Wert angezeigt.
Ich habe Eintrag 1,2,3 ausgwählt, eine 3 wird angezeigt.
Danach habe ich 3,5,6 ausgewählt, wieder nur die 6 angezeigt.

Es muss doch aber gehen, sonst wäre doch eine Mehrfachauswahl sinnlos.
__________________
Gruß Hoffi aus Radeberg
Mit Zitat antworten
  #4 (permalink)  
Alt 21-06-2008, 19:53
Blackgreetz
 PHP Junior
Links : Onlinestatus : Blackgreetz ist offline
Registriert seit: Oct 2005
Beiträge: 901
Blackgreetz ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zeig mal bitte dein HTML-Code

mfg
Mit Zitat antworten
  #5 (permalink)  
Alt 22-06-2008, 10:52
kjhofmann
 Registrierter Benutzer
Links : Onlinestatus : kjhofmann ist offline
Registriert seit: Mar 2006
Beiträge: 61
kjhofmann ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hier der Formularteil:
Zitat:
<select name="Gremium" size="10" multiple>
<option value="1">Ortschaftsrat</option>
<option value="2">Gemeinde o. Stadtrat</option>
<option value="3">B&uuml;rgermeister</option>
<option value="4">Kreistag</option>
<option value="5">Kreisrat</option>
<option value="6">Landtag</option>
<option value="7">Bundestag</option>
<option value="8">Europa-Parlament</option>
<option value="9">Volksbefragung/Volksentscheid</option>
</select>
und die Auswertung:
Zitat:
$id = $_POST['id'];
$Gremium = $_POST['Gremium'];

/* Diese Abschnitt funktionierte nicht !
for($i = 1; $n < 10; $i++) {
echo "<b>Zähler = </b>".$i."<br>"; //Zum Test
if(!empty($Gremium.$i)) {
$Gremium = $Gremium.",".($Gremium.$i = trim($_POST['Gremium$i']));
echo "<b>Gremium = </b>".$Gremium."<br>"; //Zum Test
}
*/
//--
echo "<pre>";
print_r($_POST['Gremium']);
echo "</pre>";
//--
Entscheidend ist aber die Tatsache, dass bei Mehrfachauswahl (multiple) nur ein Wert bei "$_POST" ankommt.
__________________
Gruß Hoffi aus Radeberg
Mit Zitat antworten
  #6 (permalink)  
Alt 22-06-2008, 11:21
Blackgreetz
 PHP Junior
Links : Onlinestatus : Blackgreetz ist offline
Registriert seit: Oct 2005
Beiträge: 901
Blackgreetz ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Dacht ich es mir doch

Einmal bitte lesen:

http://tut.php-quake.net/formulare.html#u10

mfg
Mit Zitat antworten
  #7 (permalink)  
Alt 22-06-2008, 11:22
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Du musst den Namen von select-Element array-fähig deklarieren:

<select name="Gremium[]" multiple>

Dann kannst du folgendes probieren:

PHP-Code:
if (is_array($_POST['Gremium']))
   foreach(
$_POST['Gremium'] as $sel)
      echo 
'selected: '.$sel.'<br />';
else
   echo 
'kein array'
print_r($_POST['Gremium'] bringt - wie immer - die Erleuchtung.
Mit Zitat antworten
  #8 (permalink)  
Alt 22-06-2008, 15:00
kjhofmann
 Registrierter Benutzer
Links : Onlinestatus : kjhofmann ist offline
Registriert seit: Mar 2006
Beiträge: 61
kjhofmann ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Aha, dort ist der Knackpunkt.
Werde es ändern.
Danke für den Tipp.
__________________
Gruß Hoffi aus Radeberg
Mit Zitat antworten
  #9 (permalink)  
Alt 23-06-2008, 12:45
kjhofmann
 Registrierter Benutzer
Links : Onlinestatus : kjhofmann ist offline
Registriert seit: Mar 2006
Beiträge: 61
kjhofmann ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Nun taucht in dem Zusammenhang ein neues Problem auf:
Der ermittelte Wert wird nicht in die Datenbank übernommen.
Trage ich den Wert in der DatenbankTabelle in die vorgesehene Zelle ein, wird er bei Aufruf kurz angezeigt, dann gelöscht.
(Vor dem Einsatz dieser Array-Sache hat alles funktioniert.)
????
Hier der Code:

Zitat:
if (is_array($_POST['Gremium'])) {
foreach($_POST['Gremium'] as $sel)
if(empty($GremiumWert)) $GremiumWert = $sel;
else $GremiumWert = $GremiumWert.",".$sel;
echo 'selected: '.$sel.'<br />';
echo 'Anzeige: '.$GremiumWert.'<br />';
} else {
$GremiumWert = 'Keine Auswahl!'; echo 'kein array'; } print_r($_POST['Gremium']);
Der Code für ein Update sieht so aus:
Zitat:
$query = "UPDATE test_daten SET BeginDatumTag = '$BeginDatumTag', BeginDatumMonat = '$BeginDatumMonat', BeginDatumJahr = '$BeginDatumJahr', WahlDatumTag = '$WahlDatumTag', WahlDatumMonat = '$WahlDatumMonat', WahlDatumJahr = '$WahlDatumJahr', WahlArt = '$WahlArt', GremiumWert = '$GremiumWert' WHERE id = $id";
INSERT u.a. noch nicht gesetzt, muss erstmal so fnktionieren.
Die Echo-Anzeigen zeigen alles richtig an, das MySQL-Feld ist "VARCHAR" und richtig dimensioniert.
Normalerweise müsste nun der Wert "$GremiumWert" in die Datenbank eingetragen werden.

Großes ?





__________________
Gruß Hoffi aus Radeberg

Geändert von kjhofmann (23-06-2008 um 12:53 Uhr)
Mit Zitat antworten
  #10 (permalink)  
Alt 23-06-2008, 12:53
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Wofür gibts eigentlich die PHP-Tags?

Zitat:
Der Code für ein Update sieht so aus:
Und wie sieht die vollständig geparste und ausgegebene Query aus? (Regeln)

Zitat:
Normalerweise müsste nun der Wert "$GremiumWert" in die Datenbank eingetragen werden.
Wenn es dir nur um den wert geht, warum sprichst du insgesamt so viele Spalten an?
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!

Geändert von TobiaZ (23-06-2008 um 12:56 Uhr)
Mit Zitat antworten
  #11 (permalink)  
Alt 23-06-2008, 13:10
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Warum eigentlich eine Mehrfachauswahl, wenn du dann doch nur den letzten Wert aus $_POST['Gremium'] in $GremiumWert übernimmst? Genau das passiert nämlich in deiner foreach Schleife.

Wie passt die Mehrfachauswahl eigentlich zu deinem DB-Schema? Du hast eine $id in der Hand und mehrere Werte in $_POST['Gremium']. Wenn $id dein Primary Key ist, wird am Ende immer nur der letzte Wert aus $_POST['Gremium'] in der DB stehen, auch wenn du das mit der Schleife geregelt bekommst.
Sieht so aus als bräuchtest du eine weitere Tabelle. Ich habe den Thread allerdings nicht ganz gelesen ...

Geändert von onemorenerd (23-06-2008 um 13:14 Uhr)
Mit Zitat antworten
  #12 (permalink)  
Alt 23-06-2008, 15:20
kjhofmann
 Registrierter Benutzer
Links : Onlinestatus : kjhofmann ist offline
Registriert seit: Mar 2006
Beiträge: 61
kjhofmann ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Also mal langsam:
Im $GremiumWert steht nicht der letzte Wert, sondern alle ausgewählten Werte. Echo-Ausgabe zeigt es.
Zitat:
Und wie sieht die vollständig geparste und ausgegebene Query aus? (Regeln)
Damit weiß ich nichts an zu fangen. Bisher hat der UPDATE so funktioniert. Wo finde ich die erwähnte Regel (in Deutsch, mein Englisch ist leider rudimentär)
Zitat:
Wie passt die Mehrfachauswahl eigentlich zu deinem DB-Schema? Du hast eine $id in der Hand und mehrere Werte in $_POST['Gremium']. Wenn $id dein Primary Key ist, wird am Ende immer nur der letzte Wert aus $_POST['Gremium'] in der DB stehen, auch wenn du das mit der Schleife geregelt bekommst.
Ich habe die Werte der Schleife in den Wert $GremiumWert jemeils mit Komma getrennt ermittelt, so dass ich dann nur einen Wert für die Datenbanktabelle habe.
Dort, wo die Werte dann in einer (oder mehrere) Webseiten ausgewertet werden, werden diese Daten wieder in ein Array aufgelöst und kommen zur Anzeige.
Zitat:
Sieht so aus als bräuchtest du eine weitere Tabelle. Ich habe den Thread allerdings nicht ganz gelesen ...
Kann man denn innerhalb eines Formular Werte auf zwei Tabellen speichern? Habe ich noch nicht gemacht. Wei geht das?

Der Hintergrund der Aktion:
Ich habe den Auftrag, für einen SPD-Verein die Webseiten neu zu gestalten.
Für Wahlen wird nun das Datum des beginnenden Wahlkampfes, das Wahldatum, die zu wählenden Gremien und noch die Wahlart (Landesweit, Einzelwahl etc.) in eine Datenbank gegeben und auf den einzelnen Webseiten mit den zu wählenden Personen verknüpft.
Da aber bekannterweise sehr unterschiedlich die Gremien gewählt werden, z.B. Stadt- & Gemeinderat, Kreistag, Bürgermeister usw. muss immer unterschiedlich ausgewählt werden. Das wollte ich mit einer Mehrfachauswahl lösen.
Die gesamte Tabelle funktioniert einwandfrei, nur wenn ich den ermittelten Wert der Mehrfachauswahl hinzu füge, geht es nicht mehr.

Um mich der Sache zu nähern, habe ich eine Testseite angelegt, in der ich nur die nötigsten Werte verwende. Einen Wert1, die Mehrfachauswahl und einen Wert2, ein Textfeld.
Ich hoffe hier der Sache auf den Grund zu kommen.
__________________
Gruß Hoffi aus Radeberg
Mit Zitat antworten
  #13 (permalink)  
Alt 23-06-2008, 15:34
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Im $GremiumWert steht nicht der letzte Wert, sondern alle ausgewählten Werte. Echo-Ausgabe zeigt es.
Poste die Ausgabe hier!

Zitat:
Wo finde ich die erwähnte Regel (in Deutsch, mein Englisch ist leider rudimentär)
http://php-resource.de/forum/showthr...threadid=50454

Zitat:
Kann man denn innerhalb eines Formular Werte auf zwei Tabellen speichern? Habe ich noch nicht gemacht. Wei geht das?
Das Formular hat nichts mit der Tabelle zu tun. Die Frage ergibt so keinen Sinn.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #14 (permalink)  
Alt 23-06-2008, 15:35
kjhofmann
 Registrierter Benutzer
Links : Onlinestatus : kjhofmann ist offline
Registriert seit: Mar 2006
Beiträge: 61
kjhofmann ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich glaube, jetzt habe ich es.
Ich darf nicht den Sammelwert $GremiumWert in die Datenbank eintragen wollen, sondern eine neue Variable nehmen, z.B. $GremiumEintr und diese übergebe ich den Sammelwert.
Zitat:
$GremiumEintr = $GremiumWert;
So hat es funktioniert.

Danke für die Mithilfe.
__________________
Gruß Hoffi aus Radeberg
Mit Zitat antworten
  #15 (permalink)  
Alt 23-06-2008, 15:37
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

ganz sicher...
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:26 Uhr.