ERLEDIGT
JA
JA
ANTWORTEN
4
4
ZUGRIFFE
832
832
EMPFEHLEN
-
Hallo.
Folgendes Problem... ich habe in einem Formular diverse Checkboxen. Sie werden dynamisch aus einer Tabelle (vegan_laeden) ausgelesen, weil sie u.U. später erweitert werden sollen und haben name=laden[] values 1, 2, 3, 4 und 5. Wenn jetzt die 2. und die 4. gecheckt sind, wird in die db (vegan_produkte) bei laden "2, 4" geschrieben.
So weit so gut.
Nun wollte ich in einem Edit Formular prüfen, ob die jeweilige checkbox (while Schleife aus vegan_laeden) einen Haken bekommen muss (Array "laden" aus vegan_produkte)
das klappt aber nur bei der ersten angewählten, und nicht bei den weiteren. Das verstehe ich nicht. (mal ganz abgesehen davon, dass ich das checked noch xhtml konform machen muss)PHP-Code:include ('config.php');
echo "<table style=\"width: 800px;\">";
$id = $_GET['id'];
mysql_query("SET lc_time_names = 'de_DE'");
$query = mysql_query("SELECT id, laden
FROM vegan_produkte WHERE id = '$id'");
while($data = mysql_fetch_array($query)) {
$laden = $data['laden'];
<tr>
<td>Laden</td>\n";
$query2 = mysql_query("SELECT id, laden AS laden2
FROM vegan_laeden
");
$i=0;
$laeden=array();
while($row = mysql_fetch_array($query2)) {
$laeden[] = $row['laden2'];
$ladenarray=explode(",",$laden);
echo "<tr><td></td><td>".$row['laden2']."</td><td><input type=\"checkbox\" name=\"laden[]\" value=\"".$row['laden2']."\" ";
if (in_array($row['laden2'],$ladenarray)){ echo "checked"; } echo "/></td><td></td></tr>\n";
}
echo "<tr><td>Kommentar</td><td><textarea name=\"kommentar\" cols=\"20\" rows=\"5\">$kommentar</textarea></td></tr>
<tr><td><input type=\"submit\" value=\"senden\"/></td></tr>";
Kann mir jemand helfen, bzw ist das überhaupt verständlich?
Vielen Dank schonmal
-
irgendwie ist dein komischer Code fehlerhaft. Ich kann ihn nicht laden ohne das fast alles rot markiert wird.....
es fehlen im String \ vor " etc.
Sorry, hab keine Lust dein zusammengeschnittener Code so zu formatieren dass man ihn a) lesen und b)fehlerfrei betrachten kann.
Solche Konstrukte sind nicht wirklich lesbar:
selbst dieses Echo ist voller Fehler, so dass ich den logischen Fehler vor lauter normaler Fehler leider nicht sehePHP-Code:if(bedinung){mach was;} mach was;
if (in_array($row['laden2'],$ladenarray)){ echo "checked"; } echo "/></td><td></td></tr>\n";
Hier noch ein Tipp zu komplexeren zusammengesetzten StringsPHP-Code:echo "<tr><td></td><td>".$row['laden2']."</td><td><input type="checkbox\" name=\"laden[]\" value=\"".$row['laden2']."\" ";
http://www.dynamic-webpages.de/php/l...arsing.complex
Nun zum Thema
Du gehst alle EInträge mit der while()-Schleife durch und hängst die Einträge in $laden[] zusammen.
Jedoch löst du diese in jedem Schleifendurchgang in einen String auf. Wozu?
Und was ist der Unterschied zwieschen $laeden und $laden?Geändert von Yaslaw (09.03.10 um 15:37 Uhr)
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Entschuldige, ich habs aufs Wesentliche zusammengekürzt, dadurch die Syntax-Fehler.. nun ist sicherlich vieles noch Unsinn, aber vielleicht nicht mehr falsch. Oder?PHP-Code:
<?php
include ('config.php');
echo "<table style=\"width: 800px;\">";
$id = $_GET['id'];
mysql_query("SET lc_time_names = 'de_DE'");
$query = mysql_query("SELECT id, laden
FROM vegan_produkte WHERE id = '$id'");
while($data = mysql_fetch_array($query)) {
$laden = $data['laden'];
echo"<tr>
<td>Laden</td>";
$query2 = mysql_query("SELECT id, laden AS laden2
FROM vegan_laeden
");
$i=0;
while($row = mysql_fetch_array($query2)) {
$laden2 = $row['laden2'];
$ladenarray=explode(",",$laden);
echo "<tr><td></td><td>$laden2</td><td>";
echo "<input type=\"checkbox\" name=\"laden[]\" value=\"$laden2\" ";
if (in_array($laden2,$ladenarray))
{ echo "checked"; }
echo "/></td><td></td></tr>\n";
}
echo "<tr><td>Kommentar</td><td><textarea name=\"kommentar\" cols=\"20\" rows=\"5\">$kommentar</textarea></td></tr>
<tr><td><input type=\"submit\" value=\"senden\"/></td></tr>";
?>
Also was mit dem $laden[] war Blödsinn, habe ich mir so falsch zusammengesucht.
Jetzt sind nur noch laden und laden2... laden sind die angecheckten Boxes in der Form "2, 3" und laden2 die Läden die insgesamt zur Auswahl stehen.
Ich habe das erste mal mit Arrays und bin noch nicht wirklich drin bei all den Indizes und Klammern etc pp. SorryGeändert von ropueh (09.03.10 um 15:53 Uhr)
-
hat sich erledigt... ganz dummer Fehler.
laden war mit space hinterm komma gespeichert, daran lag's
Trotzdem danke für den guten Willen.
-
Hm. has tdu in der Tabelle vegan_produkte den Text 'laden' oder die id 'id' aus vegan_laeden gespeichert?
Code PHP:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
<?php include ('config.php'); echo "<table style=\"width: 800px;\">"; //Einmal alle Läden in ein Array schreiben -> $laeden //$laeden = array([id1] => 'Text1', [id2] => 'Text2', ..) $res = mysql_query("SELECT id, laden FROM vegan_laeden"); while($laden = mysql_fetch_array($res)){ $laeden[$laden['id']] = $laden['laden']; } mysql_free_result($res); $id = $_GET['id']; mysql_query("SET lc_time_names = 'de_DE'"); //Projekte aus der DB laden $res = mysql_query("SELECT id, laden FROM vegan_produkte WHERE id = '$id'"); //Hab die while durch ein if ersetzt. Da du direkt auf die id püfst, wird höchstens ein Treffer kommen if($data = mysql_fetch_array($res)) { $selectedLaeden = explode(",",$data['laden']); echo"<tr> <td>Laden</td>"; //Pro $laden in $laeden eine Checkbox schreiben foreach($laeden as $lid => $laden){ echo "<tr><td></td><td>{$laden}</td><td>"; //Wenn über die id aus vegan_laeden gearbeitet werden sollte, ab hier $lid anstelle von $laden verwenden echo "<input type=\"checkbox\" name=\"laden[]\" value=\"{$laden}\" "; //Prüfen ob der Laden ausgewählt ist (ev. durch $lid ersetzen, wenn die id in der //Produktetabelle gespeichert wird if (in_array($laden, $selectedLaeden)) echo "checked"; echo "/></td><td></td></tr>\n"; } echo "<tr><td>Kommentar</td><td><textarea name=\"kommentar\" cols=\"20\" rows=\"5\">{$kommentar}</textarea></td></tr> <tr><td><input type=\"submit\" value=\"senden\"/></td></tr>"; } mysql_free_result($res); ?>
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
Ähnliche Themen
-
problem mit checkbox checked
Von gruebel-gruebel im Forum PHPAntworten: 16Letzter Beitrag: 07.10.08, 10:58 -
Checkbox checked/unchecked
Von redback79 im Forum PHPAntworten: 1Letzter Beitrag: 18.08.05, 15:33 -
Radiobuttons überprüfen ob checked
Von gregorweber im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 04.06.05, 09:33 -
Checkbox Parameter "checked" durch URL-Aufruf übergeben
Von freemanX im Forum HTML & XHTMLAntworten: 2Letzter Beitrag: 14.02.05, 00:00 -
Checkbox nach refresh immernoch checked
Von joky_joky im Forum PHPAntworten: 5Letzter Beitrag: 15.09.04, 13:19





Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren