php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2010

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 24.03.2010, 01:27  
Erfahrener Benutzer
 
Registriert seit: 28.06.2008
Beiträge: 259
maeck befindet sich auf einem aufstrebenden Ast
Standard mehrere Arrays gleichermaßen sortieren

Hallo,

ich habe ein Anmeldeformular, in dem eine Familie Ihre Mitglieder (Eltern und Kinder) anmelden kann. Dafür habe ich folgendes div:
PHP-Code:
<div class="user" id="user">
    <
div class="type-text">        
        <
label for="surname" class="surname">Vorname</label>        
        <
input type="text" class="surname" id="surname" name="surname[]"  />
    </
div>
    <
div class="type-text">        
        <
label for="gender" class="gender">Geschlecht</label>
        <
input type="radio" name="gender[]" class="gender" id="gender" value="M" checked="checked" />männlich
        
<input type="radio" name="gender[]" class="gender" id="gender" value="W" />weiblich
    
</div>                      
</
div
Wie ihr seht möchte ich mit Arrays arbeiten.

Wenn die Daten übertragen worden sind, möchte ich das Array "Vorname" sortiert (ASC) ausgeben. Dabei soll auch das Array "gender" entsprechend dem Array Vorname sortiert ausgegeben werden:
A_Vorname, A_Geburtsdatum
B_Vorname, B_Geburtsdatum
...

Die beiden Arrays haben ja nichts miteinander zu tun. Ist es dennoch möglich, ein (oder mehrere) Arrays so zu sortieren, wie ein anderes Array zuvor sortiert wurde?

Gruß Marcel
maeck ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 24.03.2010, 01:46  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.991
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Bitte mal ein Beispiel machen..
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
Alt 24.03.2010, 07:01  
Erfahrener Benutzer
 
Registriert seit: 04.07.2003
Beiträge: 359
PHP-Kenntnisse:
Fortgeschritten
Sirke befindet sich auf einem aufstrebenden Ast
Standard

Hast du mal mehrere deiner HTML Blöcke in einem Formular gehabt und das abgesendet? Da alle Radio Buttons für das geschleckt den gleichen Namen haben, wird nur ein einziges Geschlecht versendet!

Ich würde, da es sich ja sicherlich um eine begrenzte Anzahl an Eingabefelden handelt, jedem Eingabefeld eine Nummer mitgeben, welche ich beim Empfangen hochzähle und prüfe, ob die Variablen gefüllt sind!

Die Funktion usort() könnte für dich in Frage kommen! Dazu benötigst du jedoch einen Array der Form:
Code:
array(n) {
  [0]=> array(2) {
    "Vorname"    => "Der Vorname der 1. Person"
    "Geschlecht" => "Das Geschlecht der 1. Person"
  }
  [1]=> array(2) {
    "Vorname"    => "Der Vorname der 2. Person"
    "Geschlecht" => "Das Geschlecht der 2. Person"
  }
  .
  .
  .
  [n-1]=> array(2) {
    "Vorname"    => "Der Vorname der n. Person"
    "Geschlecht" => "Das Geschlecht der n. Person"
  }
}
Sirke ist offline  
Alt 27.03.2010, 22:06  
Erfahrener Benutzer
 
Registriert seit: 28.06.2008
Beiträge: 259
maeck befindet sich auf einem aufstrebenden Ast
Standard

Hallo Sirke,
Zitat:
Zitat von Sirke Beitrag anzeigen
Hast du mal mehrere deiner HTML Blöcke in einem Formular gehabt und das abgesendet? Da alle Radio Buttons für das geschleckt den gleichen Namen haben, wird nur ein einziges Geschlecht versendet!
Ehrlich gesagt habe ich mir um das Geschlecht noch keine Gedanken gemacht, da ich bisher nur mit dem Vorname getestet habe.
Ich clone das div "user" mit JS und ändere beim Clonen den Namen des divs in "user2", "user3", etc. Ebenso die id "surname" in "surname2", "surname3". DAs Attribut name gebe ich dabei als Array an, damit ich in PHP mit dem Array arbeiten kann.

Genauso wollte ich auch mit gender verfahren.
Aber anhand deiner Nachfrage ist mir beim Recherchieren aufgefallen, dass das wohl gar nicht gehen wird, oder?

Heißt das, ich kann bei RadioButtons nicht mit name[] arbeiten, sondern jedem Element zwingend einen eigenen Namen geben?

Gruß Marcel
maeck ist offline  
Alt 28.03.2010, 12:47  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Radio Button erlauben eh nur eine Auswahl pro Gruppe, daher mach Array keinen Sinn.
Welche Button eine Gruppe bilden entscheidet man einfach durch gleiche Namensvergebung: z.B. name="gender1" !
Arne Drews ist offline  
Alt 28.03.2010, 20:07  
Erfahrener Benutzer
 
Benutzerbild von mermshaus
 
Registriert seit: 14.06.2009
Beiträge: 1.733
PHP-Kenntnisse:
Fortgeschritten
mermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz sein
Standard

Ich glaube, es spricht nichts dagegen, die Formularelemente etwa so zu benennen:

Code:
<input type="text" name="data[0][vorname]" />
<input type="text" name="data[0][nachname]" />

<input type="text" name="data[1][vorname]" />
<input type="text" name="data[1][nachname]" />

...

<input type="text" name="data[n][vorname]" />
<input type="text" name="data[n][nachname]" />
Das name-Attribute (also die Indizes) könntest du sicher auch per JavaScript dynamisch setzen.

Das ist von der Idee her das, was Sirke gepostet hat, aber ich dachte, vielleicht hat da ja jemand noch 'ne Meinung zu.
mermshaus ist offline  
Alt 28.03.2010, 22:37  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Natürlich ist das eleganter, zumindest finde ich das...
Aber ich denke sein Problem liegt im Verständnis einer Radiobox.
Denn er versucht
Code:
<input type="radio" name="gender[]" ...
<input type="radio" name="gender[]" ...
dafür reicht aber definitiv
Code:
<input type="radio" name="gender" ...
<input type="radio" name="gender" ...
die geschweiften Klammern waren imho unnötig.

Ob er jetzt die Mehrzahl der Personen durch name="gender1", name="gender[1]" oder name="data[1][gender]" unterscheidet ist erst im nächsten Schritt wichtig, denke ich...
Arne Drews ist offline  
Alt 29.03.2010, 20:12  
Erfahrener Benutzer
 
Registriert seit: 28.06.2008
Beiträge: 259
maeck befindet sich auf einem aufstrebenden Ast
Standard

Du hast recht, ich wollte die values der radioboxes in einem Array abspeichern.

Hintergrund: Ich clone obiges DIV mit JS und wollte dabei die Möglichkeit nutzen, dass - mal angenommen ich clone 2x und gebe dann drei Vornamen ein - in dem Array vorname[] anschließend alle drei Vornamen stehen.
So verfahre ich bisher mit allen input-Feldern, was auch funktioniert

Das dies mit Radioboxes nicht klappt verstehe ich jetzt.

Dann bleibt mir wohl nichts anderes übrig, als das Gender-Attribut "name" beim Clonen mit einer Nummer zu versehen. In PHP muss ich die Variablen dann durchlaufen und in ein Array schreiben.

Marcel

Geändert von maeck (29.03.2010 um 20:19 Uhr).
maeck ist offline  
Alt 29.03.2010, 20:15  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Dann solltest Du aber mal die Variante von mermshaus in Ruhe ansehen.
Das wäre dann das richtige für Dich, denke ich...
Arne Drews ist offline  
Alt 29.03.2010, 20:19  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von maeck Beitrag anzeigen
Dann bleibt mir wohl nichts anderes übrig, als das Gender-Attribut "name" beim Clonen mit einer Nummer zu versehen. In PHP muss ich die Variablen dann durchlaufen lassen und in ein Array schreiben.
Du kannst weiterhin die Syntax mit den geschweiften Klammern nutzen - dann bekommst du in PHP auch weiterhin ein Array, dass du bequem(er) durchlaufen kannst, als wenn du dort anfängst, Variablennamen dynamisch zusammenzusetzen.

Du musst nur darauf achten, dass der Name pro Radiobutton-Gruppe weiterhin unterschiedlich ist. Die von mermshaus vorgeschlagene Syntax lässt sich dazu gut benutzen, als name="gender[0]", name="gender[1]", etc. - jeweils für eine zusammengehörige Gruppe von Radionbuttons.
ChrisB ist offline  
 


Themen-Optionen
Thema bewerten
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.

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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Best Practise: Arrays unabhängig vom index zusammenfügen lh_as PHP-Fortgeschrittene 1 16.03.2010 15:47
inhalt eines problem - arrays kürzen bzw. einer variablen zuweisen geuloth PHP Tipps 2010 6 27.02.2010 18:05
[Erledigt] Sortieren von Arrays Roflkid PHP-Fortgeschrittene 10 06.05.2009 22:48
eindimensionale arrays sortieren webazubi PHP Tipps 2007 5 23.03.2007 18:11
Sortieren eines Arrays mittels Funktion ? madSoul PHP Tipps 2007 16 22.02.2007 11:49
Arrays sortieren, Bezeichnung, Preis Ticos PHP Tipps 2006 4 07.09.2006 19:37
Fehlermeldung beim Sortieren meines Arrays... GELight PHP Tipps 2006 5 27.04.2006 22:08
[Erledigt] 2 Arrays miteinander vergleichen PHP Tipps 2007 3 17.12.2005 16:54
Arrays alphabetisch sortieren seven-12 PHP Tipps 2007 4 17.11.2005 14:33
Sortieren von Arrays mit mehr als 2 Dimensionen (Teil 2) Buhmann PHP-Fortgeschrittene 4 12.07.2005 14:03
Sortieren von Arrays mit mehr als 2 Dimensionen PHP-Fortgeschrittene 8 05.07.2005 16:48
[Erledigt] sortieren von arrays aus mysql Datenbanken 7 28.04.2005 21:53
5 assosiative arrays gleichzeitig sortieren PHP Tipps 2004-2 2 13.12.2004 14:07
Arrays nachträglich (Inhalte) zählen und sortieren Gumfuzi PHP Tipps 2004-2 3 20.11.2004 00:00
Mehrdimensionale Arrays sortieren Borlox PHP Tipps 2004 5 23.09.2004 14:52

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php mehrere arrays sortieren, php zwei arrays sortieren, php button sortieren, php array sortieren namen vornamen, mehrere arrays gleichermaßen sortieren, mehrere arrays sortieren, http://www.php.de/php-einsteiger/66066-mehrere-arrays-gleichermassyen-sortieren.html, php for zwei arrays, two arrays gleich sortieren php, php zwei arrays gleich sortieren, array von arrays php eltern mit kindern anzeigen, php mehrere arrays gleich ordnen, 2 arrays identisch sortieren, array sortieren php eingabefeld $name, php verschiedene arrays durchlaufen, deutsche vornamen array, verschiedene array sortieren, array dynamisch namen geben php, mehrere arrays mit einmal sortieren php, php 2 arrays gleichzeitig durchlaufen

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:33 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum