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 16-03-2005, 13:44
zdek
 Newbie
Links : Onlinestatus : zdek ist offline
Registriert seit: Mar 2003
Ort: Hamburg
Beiträge: 21
zdek ist zur Zeit noch ein unbeschriebenes Blatt
Standard Form-checkbox auf checked setzen

Hallo Leute

Ich bin gerade dabei ein kleines CMS zu erstellen.
Dabei ist ein Problem aufgetaucht, was ich hier im Forum noch nicht gefunden habe.

Ich habe ein Formular mit Checkboxen. Die werden als String ( mit implode) in einer Datenbank gespeichert. Soweit sogut. Jetzt möchte ich aber, dass, wenn man den datensatz "updaten" will, die Checkboxen dessen werte gesetzt waren, wieder als "checked" gekennzeichnet werden, damit mann nicht alle Checkboxen neu auswählen muss.

Dazu muss aber noch erwähnt werden, dass die Checkboxen auch aus einer dB dyn. erstellt werden.

Hier ein Auszug aus dem Quelltext
PHP-Code:
<?php
// der Datensatz $zweck wird in ein Array gwandelt
$array1 explode (' ',$zweck);
// Anzahl der Arryeinträge ermitteln
$anzahl count($array1);

// DB abfrage um alle Checkboxen aufzulisten
$sql2="SELECT * FROM m_zweck WHERE uid='1' ";
$result2=mysql_query($sql2);
if (
mysql_Num_Rows($result2) > ) {
  while (
$row2 mysql_fetch_array ($result2)) { 
  
  
// Hier nun der versuch den Checkboxen "checked" zuzuweisen deren ID im $array1 vorkommen
       
for ($i 0$i $anzahl$i++) {
            if (
$row[id] == $array1[$i]){
                 echo 
"<tr><td width=\"15\"><input type=\"checkbox\" name=\"zweck[]\" value=\"$row2[id]\" checked>
        </td><td>$row2[zweck_de]</td></tr>"
;
            } else {
                 echo 
"<tr><td width=\"15\"><input type=\"checkbox\" name=\"zweck[]\" value=\"$row2[id]\">
</td><td>$row2[zweck_de]</td></tr>"
;
           }   
      }
  }  
}
else
{
  echo 
"<tr><td colspan=\"2\">Es sind keine Einträge in der DB vorhanden</td></tr>";
}
mysql_free_result ($result);
?>
Leider funzt das gar nicht. Es werden nur alle Checkboxen so oft angezeigt wie Anzahl der Array-Werte vorliegen.

Hat nicht jemand eine Idee wie man das umsetzen kann. Ich hab jetzt schon seit 2 tagen daran herumgedoktert, das ich jetzt garnichts mehr hinbekomme ( kennt bestimmt mancher von Euch)

erst mal dank im vorraus

lorenz
Mit Zitat antworten
  #2 (permalink)  
Alt 16-03-2005, 14:50
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Klar, weil die Ausgabe auch innerhalb der for-Schleife stattgefunden hat. Mach die Schleife weg und tu was mit in_array.

Außerdem hast du:
- $row und $row2
- $result und $result2
bringst du da nicht was durcheinander?
Mit Zitat antworten
  #3 (permalink)  
Alt 16-03-2005, 15:25
zdek
 Newbie
Links : Onlinestatus : zdek ist offline
Registriert seit: Mar 2003
Ort: Hamburg
Beiträge: 21
zdek ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@asp2php

Nein mit den $row und $row2 habe ich 2 verschiedene DB-Abfragen realiesiert. Es gibt sogar insgesamt 5 DB Abfragen die ich durchnummeriert habe, da mehrere Tabellen die gleichen Tabellenheader haben (id, serie, und rubrik) (man hätte diese natürlich eindeutige namen geben können, wie zb serie_id oder zweck_id etc...)

Ich habe mir in_array mal durchgelesen kann aber leider nichts damit anfangen. Ich habe auch schon ein paar andere Array-Funktionen gelesen und noch nichts passendes gefunden.

werde jetzt mal die forschleife entfernen. Das wird zwar nur alle Checkboxen anzeigen (mein ausgangspunkt) aber nicht die "checked" als diese ausgeben.

Vieleicht weis sonst noch wer ein Tip.

gruß Lorenz
Mit Zitat antworten
  #4 (permalink)  
Alt 16-03-2005, 15:30
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

mit in_array prüfst du, ob der Wert in dem Array vorkommt, wenn ja, checked zusätzlich ausgeben.
Mit Zitat antworten
  #5 (permalink)  
Alt 16-03-2005, 15:51
zdek
 Newbie
Links : Onlinestatus : zdek ist offline
Registriert seit: Mar 2003
Ort: Hamburg
Beiträge: 21
zdek ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ja dass könnte klappen wenn man das inetwa so macht

if (in_array ("$row[id]",$array1)) {
echo "checkbox checked";
} else {
echo "checkbox";
}

das werde ich jetzt mal ausprobieren ....

melde mich dann nochmal

lorenz
Mit Zitat antworten
  #6 (permalink)  
Alt 16-03-2005, 16:28
zdek
 Newbie
Links : Onlinestatus : zdek ist offline
Registriert seit: Mar 2003
Ort: Hamburg
Beiträge: 21
zdek ist zur Zeit noch ein unbeschriebenes Blatt
Standard

suuupiii
das hat funktioniert!

also so sieht jetzt mein script aus!
PHP-Code:
<?php
// der Datensatz $zweck wird in ein Array gwandelt
$array1 explode (' ',$zweck);

// DB abfrage um alle Checkboxen aufzulisten
$sql2="SELECT * FROM m_zweck WHERE uid='1' ";
$result2=mysql_query($sql2);
if (
mysql_Num_Rows($result2) > ) {
  while (
$row2 mysql_fetch_array ($result2)) { 
  
  
// Hier nun der versuch den Checkboxen "checked" zuzuweisen 
// deren ID im $array1 vorkommen
      
            
if (in_array("$row2[id]",$array1)) {
                 echo 
"<tr><td width=\"15\"><input type=\"checkbox\" name=\"zweck[]\" ";
                 echo
" value=\"$row2[id]\" checked></td><td>$row2[zweck_de]</td></tr>";
            } else {
                 echo 
"<tr><td width=\"15\"><input type=\"checkbox\" name=\"zweck[]\" ";
                 echo
" value=\"$row2[id]\"></td><td>$row2[zweck_de]</td></tr>";
           }   
  } 
}
else
{
  echo 
"<tr><td colspan=\"2\">Es sind keine Einträge in der DB vorhanden</td></tr>";
}
mysql_free_result ($result);
?>
Danke für den Tip mit "in_array" hab mich leider mit den meisten Fuktionen scheinbar zuwenig beschäftigt.
(werde ich nachholen, versprochen

Lorenz
Mit Zitat antworten
  #7 (permalink)  
Alt 16-03-2005, 16:41
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

- das else-Teil kannst du dir sparen
- Array nicht in String einbetten
- Array-Key immer als String angeben
- sichtbare Textausgabe immer mit htmlentities ausgeben
- Variable nicht in "" eingeschlossen als Argument übergeben, was soll der Sch**ß?
=>
PHP-Code:
...
echo 
"<tr><td width=\"15\"><input type=\"checkbox\" 
    name=\"zweck[]\" value=\""
.$row2['id']."\"";
if (
in_array($row2['id'],$array1))
    echo 
" checked";
echo 
"></td><td>".htmlentities($row2['zweck_de'])."</td></tr>\n";
... 
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

Projektmanagement Damals und Heute
Projektmanagement Damals und HeuteWerfen Sie einen Blick auf das, was sich verändert hat, und entdecken Sie, wo die Zukunft dieses Gebietes hinsteuert.

18.01.2021 | Berni

Arbeitsmanagement-Tools
Arbeitsmanagement-ToolsWarum jedes Team Arbeitsmanagement-Tools benötigt. Man schätzt, dass 25% eines durchschnittlichen Mitarbeiter-Tages durch ineffiziente Arbeit vergeudet werden.

11.12.2020 | Berni


 

Aktuelle PHP Scripte

PHP-Login

Die Aufgabenstellung bestand darin, ein einfaches Login-Script zu erstellen, dass schnell und universell auf jeder Webseiten eingebaut werden kann. Der Schwerpunkt lag dabei auf der Entwicklung eines universell einsetzbarem Modul für den Login und zur

05.04.2021 Wallhalla | Kategorie: PHP/ Kundenverwaltung
ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script ansehen ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script

Mit unserer Lösungen können Sie nahezu jeden B2B / B2C Marktplatz betreiben den Sie sich vorstellen können. Ganz egal ob Sie einen Automarktplatz, Immobilenportal oder einfach einen Anzeigenmarkt betreiben möchten. Mit ebiz-trader können Sie Ihre Anforder

18.03.2021 Berni | Kategorie: PHP/ Anzeigenmarkt
Modelmanager 2

Der Modelmanager 2 kann als komplette Webseite oder als Webtool in einem eigenen Verzeichnis Installiert werden, so ist dieser auch sehr Flexibel einsetzbar.

17.03.2021 Stephan_1972 | Kategorie: PHP/ Bilder
 Alle PHP Scripte anzeigen

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