php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 20.08.2004, 11:21  
Gast
 
Beiträge: n/a
Standard Array aus Checkboxen wird nicht korrekt gefüllt

Hallo Leuts,

vielleicht kann mir jemand helfen. Folgendes Problem beschäftigt mich seit vielen Stunden:

Ich erzeuge mit einer while-Schleife (auch schon For-Schleife probiert) eine Liste mit verschiedenen Einträgen. Unter anderem auch eine Checkbox.
Diese soll dazu dienen, bei Anhaken diesen Listeneintrag zu löschen.
Wenn ich die Checkbox als einfache Variable (ohne []) anlege, klappt das Löschen von einem einzigen Listeneintrag auch.
Wenn ich den Checkboxnamen als Array übergebe, wird imme nur ein String "Array" übergeben.
Meine Vermutung: Das Array wird zwar angelegt, aber es wird nicht mit Daten gefüllt, weil das Formular irgendwie nicht nochmal abgearbeitet wird?

Kurzer Auszug aus dem Script:
Code:
} elseif ($op == "delete") {
    del();
          .
          .
          .
echo "<form name=\"listform\" method=\"post\" action=\"modules.php?name=$module_name&file=contactbook\">
	<input type=\"hidden\" name=\"op\" value=\"delete\">
	<table blabla
damit soll er am Anfang des Scripts zur Funktion del() springen

Code:
   while($count < $countlimit && $row = sql_fetch_array($res, $dbi)){
blabla Variablen definiert
	$contactid = $row['contactid'];
          .
          .
          .
echo "bla Tabellenfelder
<td><input type=\"checkbox\" name=\"del[]\" value=\"$contactid\">
          .
          .
          .
}
echo "</table>
<input type=\"submit\" name=\"deleteall\" value=\""._DELETESELECTED."\"></form>";
Ausgabe der Liste
Die $contaktid ist richtig verfügbar.

Per submit sollen die angehakten Listeneinträge gelöscht werden.

gebe ich oben bei der IF Abfrage $del aus (auch mit $_POST['del'], kommt immer nur ein String "Array" raus. Somit klappt natürlich die Löschfunktion del() nicht mehr.
Schon verschiedenste Versuche gemacht.
Habe auch das Hiddenfeld schon rausgeschmissen und den submitbutton per IF abgefragt und zu del() geleitet. Keine Erfolge. Immer das Gleiche.
Liegt das an der Schleife?

Für Hilfe wäre ich verbunden.
Gruß, Happy
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 20.08.2004, 11:24  
Gast
 
Beiträge: n/a
Standard

Die Ausgabe Array ist absolut korrekt, denn wenn Du del[] schreibst, ist das nun mal ein Array. Du musst also das Array bearbeiten, um an die Werte zu kommen. Siehe

11.10. Wie kann man Checkboxen verarbeiten?
http://www.dclp-faq.de/q/q-formular-checkbox.html

Gruß
phpfan
  Mit Zitat antworten
Alt 20.08.2004, 11:41  
Gast
 
Beiträge: n/a
Standard

Danke für die schnelle Antwort.
Ja, genau diese Bearbeitung erfolgt ja in der Funktion del()

Code:
    if(is_array($del)) {
	foreach ($del as $d) {
Ich globalisiere die Variabla del(). Hab auch schon $_POST['del'] globalisiert, ohne Erfolg.

Wenn ich aber schon vorher mit print_r($del) das Array mir mal anschaue, steht da nur "Array"
Drucke ich mir so andere Arrays aus, stehen da die einzelnen Werte aufgelistet. Das heisst doch, dass das Array leer bleibt, oder?

Gruß, Happy
  Mit Zitat antworten
Alt 20.08.2004, 12:23  
Gast
 
Beiträge: n/a
Standard

Noch was: die IF-Abrage wird auch schon nicht weiter ausgeführt, da del() anscheinend kein Array ist.
Die Abfrage var_dump($del) liefert mir die Ausgabe: string(5) "Array"
  Mit Zitat antworten
Alt 21.08.2004, 14:36  
Gast
 
Beiträge: n/a
Standard

Wenn Du die Checkboxen nicht anklieckst werden die Werte nicht übergeben, und du erhältst also kein Array.

Ein Problem welches ich auch hatte.

Meine Lösung

Wenn Du schon eine Scheife machst kannst Du auch folgendes schreiben

for($i=0;$i<$x;$i++)
"<input ...... name='del_$i' .... />"

oder eine andere Schleife mit $i als Zähler (eventuell $i-- schreiben da Zähler eins zu hoch, je nach Schleifenart und Erhöungsprozedur)

Nun noch ein Hidenfeld mit $i als Counter anlegen und bei der Abfrage

"<input .type='hidden' name='counter' value='$i' .... />"

jetzt kannst du bei der Abfrage folgendes Schreiben (auch andere Schleifen möglich)

for($i=0;$i<$_POST["counter"];$i++)
if (isset($_POST["del_$i"])) ......

PS. schreibe vielleicht mal statt

"<input type=\"text\" >"

so

"<input type='text' >"

Hockomma einfach funktioniert auch in HTML-code,
das schreiben von

'<input type="text" >'

würde auch funktionieren aber die Variablen können dann nicht mehr sogut eingefügt werden.

'<input type="text" name="test_$i" >'

funktioniert dann nicht

"<input type='text' name='test_$i' >"

müßte aber funktionieren.







"
  Mit Zitat antworten
Alt 23.08.2004, 17:24  
Gast
 
Beiträge: n/a
Standard

Jau super, so gehts.

Jetzt hab ich zwar kein Array mit den Checkboxnamen und -values mehr, sondern einen Haufen von Einzelvariablen für jeden Checkbox-Haken, aber so geht es.
Und das ist die Hauptsache. Außerdem werden wohl nicht so oft so viele Einträge gelöscht werden.
Den 'Counter' konnt ich weglassen, da das erste $i (bis countlimit) schon von vornherein nur als Counter genutzt wurde. Wäre doppeltgemoppelt.

Danke nochmals, Gruß Happy
  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
Turnierbaum aus array erstellen kingflo PHP-Fortgeschrittene 11 30.07.2008 11:32
Soapfault: Undefined Property Argi PHP-Fortgeschrittene 0 28.07.2008 11:17
checkboxen für array "sammeln" faultier PHP Tipps 2006 2 26.09.2006 13:23
ARRAY: alle möglichen Kombinationen Tentacle PHP Tipps 2006 13 12.05.2006 00:18
Übersicht aus mehrdimensionalem Array erzeugen Crypi PHP-Fortgeschrittene 0 30.01.2006 13:44
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
Problem beim vergleichen von 2 Arrays PHP Tipps 2005-2 1 06.10.2005 14:25
(schnellere) Funktion zum Zusammenfassen von CSS PHP-Fortgeschrittene 21 08.08.2005 16:47
Sortieren von Arrays mit mehr als 2 Dimensionen (Teil 2) Buhmann PHP-Fortgeschrittene 4 12.07.2005 14:03
Array wie auslesen? PHP Tipps 2005 7 07.03.2005 11:43
[Erledigt] Mehrdimensionales Array in eindimensionales Array umwandeln PHP-Fortgeschrittene 3 03.01.2005 22:31
Abfrage mit id aus anderer Tabelle suter PHP Tipps 2004-2 15 16.12.2004 14:25

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php array übergeben post, checkbox nur jeder zweite array index wird gefüllt, php mehrdimensionales array werte über checkbox löschen, funktion die ein array mit einträgen aus einem formular gefüllt, funktion die ein array mit einträgen aus einem formular befüllt, nichtgewählte checkbox im arry als 0, php mehrdimensionales array mit checkbox

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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.