php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 29.03.2011, 00:32  
Neuer Benutzer
 
Registriert seit: 28.03.2011
Beiträge: 5
PHP-Kenntnisse:
Anfänger
7imbo befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Nur jeder zweite Array Index wird gefüllt

Servus,

Ich bin neu im Forum und habe vor nicht allzu langer Zeit angefangen mich mit dem Thema PHP auseinander zusetzen.

Nun habe ich kleines Projekt gestartet. Ich möchte eine Online Anmeldung programmieren, die sich dynamisch mit JavaScript erweitern lässt. Den Teil mit der Erweiterung habe ich bereits fertig, funktioniert auch super. Auch die Sache mit dem Übergeben Daten aus dem Formular (siehe unten) an das PHP Script klappt eigentlich ganz gut.
Das Formular:
Zitat:
<tr>
<td rowspan="1">
<input type="text" name="teilnehmer[]" value="" class="teilnehmer" id="teilnehmer"/>
</td>
<td>
<input type="checkbox" name="veranstaltung1[]" value="veranstaltung1" id="veranstaltung1" />
<input type="hidden" name="veranstaltung1[]" value="" id="veranstaltung1"/>
</td>
<td>
<input type="checkbox" name="veranstaltung2[]" value="veranstaltung2" id="veranstaltung2" />
<input type="hidden" name="veranstaltung2[]" value="" id="veranstaltung2"/>
</td>
<td>
<input type="checkbox" name="veranstaltung3[]" value="veranstaltung3" id="veranstaltung3" />
<input type="hidden" name="veranstaltung3[]" value="" id="veranstaltung3"/>
</td>
<td>
<input type="checkbox" name="veranstaltung4[]" value="veranstaltung4" id="veranstaltung4" />
<input type="hidden" name="veranstaltung4[]" value="" id="veranstaltung4"/>
</td>
<td>
<input type="checkbox" name="veranstaltung5[]" value="veranstaltung5" id="veranstaltung5" />
<input type="hidden" name="veranstaltung5[]" value="" id="veranstaltung5"/>
</td>
<td>
<input type="checkbox" name="veranstaltung6[]" value="veranstaltung6" id="veranstaltung6" />
<input type="hidden" name="veranstaltung6[]" value="" id="veranstaltung6"/>
</td>
<td>
<input type="checkbox" name="veranstaltung7[]" value="veranstaltung7" id="veranstaltung7" />
<input type="hidden" name="veranstaltung7[]" value="" id="veranstaltung7"/>
</td>
<td>
<input type="checkbox" name="veranstaltung8[]" value="veranstaltung8" id="veranstaltung8" />
<input type="hidden" name="veranstaltung8[]" value="" id="veranstaltung8"/>
</td>
<td>
<input type="checkbox" name="veranstaltung9[]" value="veranstaltung9" id="veranstaltung9" />
<input type="hidden" name="veranstaltung9[]" value="" id="veranstaltung9"/>
</td>
<td>
<input type="checkbox" name="veranstaltung0[]" value="veranstaltung0" id="veranstaltung0" />
<input type="hidden" name="veranstaltung0[]" value="" id="veranstaltung0"/>
</td>
</tr>
Dieses Formular kann eben per Mouseklick um eine Zeile mit der gleichen Struktur und allem erweitert werden.

Jetzt das große aber: Ich kann diese Daten auch mittels Schleife, wie ich es geplant habe in eine DB eintragen. Klicke ich jetzt jedoch zweimal (also bei zwei Teilnehmern) die gleiche Veranstaltung an, dann wird das scheinbar nicht richtig ins Array geschrieben. Jedenfalls habe ich, wenn ich mir das ausgeben lasse, an Stelle 0 wie gewollt auch den Value von Veranstaltung1[0]. Der nächste Wert sollte doch, sofern ich das richtig verstanden habe, automatisch an die nächste Stelle, also an 1, gesetzt werden, oder sehe ich das falsch? Bei mir passiert aber genau eben nicht das, sondern das Script setzt den Wert an Stelle 2, sodass eine Stelle frei bleibt und nichts in die DB eingetragen wird. Sieht, wenn ich mir das ausgeben lasse etwa so aus:

0 Veranstaltung1
1
2 Veranstaltung1
3
4 Veranstaltung1

Wähle ich aber für Teilnehmer[0] --> Veranstaltung1[0] aus und für Teilnehmer[1] --> Veranstaltung2[1] aus klappt das ohne Probleme, sprich der Platz, der leer sein sollte ist leer und der, der gefüllt sein sollte ist gefüllt.

Hier der Teil aus meine PHP Script, der relevant ist für das Eintrag in die DB:
PHP-Code:
$person count($_POST['teilnehmer']);

  
    for(
$index 0$index $person$index++)
    {
 
        if (
$_POST['teilnehmer'][$index] == "") {
            break;
        
$result2 "";
        }
        
     else {            
    
$query2="INSERT INTO $dbtabelle (...)
        VALUES
                (...)"
;
      
    
$result2 mysql_query($query2); 
Ich hoffe ich habs einigermaßen verständlich erklärt. Könnt ihr mir vielleicht einen kleinen Denkanstoß geben, damit ich mir das selber erarbeiten kann?
7imbo ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 29.03.2011, 00:37  
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 7imbo Beitrag anzeigen
Der nächste Wert sollte doch, sofern ich das richtig verstanden habe, automatisch an die nächste Stelle, also an 1, gesetzt werden, oder sehe ich das falsch? Bei mir passiert aber genau eben nicht das, sondern das Script setzt den Wert an Stelle 2, sodass eine Stelle frei bleibt und nichts in die DB eingetragen wird.
Wer „setzt“ was wo hin?

Ich verstehe deine Problembeschreibung nicht.

Zitat:
Könnt ihr mir vielleicht einen kleinen Denkanstoß geben, damit ich mir das selber erarbeiten kann?
Arbeite konsequent mit Arrays - d.h., verzichte auf „durchnummerierte“ Variablen- bzw. Feldnamen wie veranstaltungXY, und nutze stattdessen auch hier eckige Klammern, ggf. mit einem Index, um letztlich die Daten komplett in Form eines (mehrdimensionalen) Arrays zu erhalten.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 29.03.2011, 11:08  
Neuer Benutzer
 
Registriert seit: 28.03.2011
Beiträge: 5
PHP-Kenntnisse:
Anfänger
7imbo befindet sich auf einem aufstrebenden Ast
Standard

Vielen Dank erstmal, dass du so schnell geantwortet hast. Ich habe deinen Vorschlag mit den mehrdimensionalen Arrays ausprobiert. Ist denke ich auch besser für mein weiteres Vorhaben, aber:

Zitat:
Zitat von ChrisB Beitrag anzeigen
Wer „setzt“ was wo hin?

Ich verstehe deine Problembeschreibung nicht.
Vergiss meine Fehlerbeschreibung.
Ich habe den Fehler entdeckt und muss nun schauen wie ich das lösen kann. Der Fehler liegt einfach daran, dass ich nicht drüber nachgedacht habe, dass der Wert von dem Hidden-Feld auch mit geschickt wird. Dabei ist es egal, ob die Checkbox aktiviert ist oder nicht. So kommt es auch zu stande, dass scheinbar nur jede zweite Stelle im Array gefüllt ist.
7imbo ist offline   Mit Zitat antworten
Alt 29.03.2011, 11:28  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
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

Zitat:
PHP-Code:
<input type="checkbox" name="veranstaltung1[]" value="veranstaltung1" id="veranstaltung1" />
<
input type="hidden" name="veranstaltung1[]" value="" id="veranstaltung1"/>
</
td>
<
td>
<
input type="checkbox" name="veranstaltung2[]" value="veranstaltung2" id="veranstaltung2" />
<
input type="hidden" name="veranstaltung2[]" value="" id="veranstaltung2"/> 
ist auch extrem schlecht gewählt. So würde ein Schuh draus:
PHP-Code:
<input type="hidden" name="veranstaltung[1]" value=""/>
<
input type="checkbox" name="veranstaltung[1]" value="veranstaltung1" id="veranstaltung1" />
</
td>
<
td>
<
input type="hidden" name="veranstaltung[2]" value=""/>
<
input type="checkbox" name="veranstaltung[2]" value="veranstaltung2" id="veranstaltung2" /> 
Beachte:

name-Attribut
Reihenfolge
id-Attribute
__________________
--
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 offline   Mit Zitat antworten
Alt 02.04.2011, 00:46  
Neuer Benutzer
 
Registriert seit: 28.03.2011
Beiträge: 5
PHP-Kenntnisse:
Anfänger
7imbo befindet sich auf einem aufstrebenden Ast
Standard

Servus zusammen.

Sorry, dass ich mich erst jetzt melde. Vielen Dnak für die Hilfe. Die Tipps haben mich letztendlich zum Ziel geführt! Habs jetzt aber ein klein bisschen anderes gemacht als geplant, trotzdem danke!


Ich betrachte diesen Thread, dann hiermit als erledigt
7imbo ist offline   Mit Zitat antworten
Antwort


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
Array aus SQL Abfrage zusammenbauen um es rekursiv abzuarbeiten litterauspirna PHP Einsteiger 7 01.02.2011 18:44
Feed in Datenbank eintragen (Formate: json, php serialized, xml) high_five Datenbanken 5 17.06.2010 03:04
[Erledigt] Problem bei update mit array feldern fulltilt PHP Tipps 2010 6 13.02.2010 00:59
PHPLot von der Datenbank zum mehrdimensionalen Array mannimammut PHP Tipps 2009 1 15.12.2009 10:40
[Erledigt] Tabellen die sich selbst referenzieren Squall PHP Tipps 2009 19 04.08.2009 21:33
Array index updaten obi PHP Tipps 2008 4 28.11.2007 15:08
Index vom Array zurücksetzen kampfnickel PHP Tipps 2007 6 08.01.2007 17:24
Array auslesen andrew22 PHP Tipps 2006 3 21.01.2006 23:06
Array Formatierung PHP Tipps 2006 3 17.01.2006 19:12
Menü mit Unterpunkten supertramp Beitragsarchiv 7 18.10.2005 22:40
Abfrage mit id aus anderer Tabelle suter PHP Tipps 2004-2 15 16.12.2004 14:25
Array aus Checkboxen wird nicht korrekt gefüllt PHP-Fortgeschrittene 5 23.08.2004 17:24

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php jedes zweite array, php nur jede vierte, array jeden zweiten wert auslesen, php leere und gefüllte checkboxen in array, php array jeder zweite, php array \jede zweite\, array nur jede dritte, php array jede zweite wählen, form input hidden mehrdimensionale arrays, php array jede dritte id, php array jedes dritte, pro input eigene spalte, array php jedes 2te, php ein feld im array nicht gefüllt, nur jeden zweiten wert aus einem array lesen, php array jedes zweite, array index

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:07 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