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
freelancermap.de - IT Projektvermittlung für Selbständige und Freiberufler
  #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

PHP Marktplatz-Software
PHP Marktplatz-SoftwareEs hat sich viel getan! Die neue Version 7.5.9 unserer PHP Marktplatz-Software ebiz-trader steht ab sofort zur Verfügung.

28.10.2019 | Berni

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni


 

Aktuelle PHP Scripte

SMT

Server Monitoring & Management Tool Das SMT wurde von einem Administrator für Administratoren entwickelt, es vereinfacht den Alltag in der klassischen Administration und Verwaltung. Mit dem SMT kannst Du alle Deine Server & Dienste verwalten und überwach

04.09.2020 palle_1977 | Kategorie: PHP
numaeks Web-Farbmixer

Die RGB-Farben lassen sich hier auf unterschiedliche Weise mischen. Zur Einstellung werden auch die Dreh- und Schieberegler mit Canvas verwendet. Gespeichert werden die Farben in einem Cookie.

04.09.2020 numaek | Kategorie: JAVASCRIPT/ Tools
phplinX-Erotikportal 4 ansehen phplinX-Erotikportal 4

Erweiterbares Portal speziell für Erotik mit den Modulen Webkatalog, Bannermanagement und Kleinanzeigenmarkt. Sämtliche Module können über einen einzigen Adminbereich verwaltet werden.

18.06.2020 Cosinus14 | Kategorie: PHP/ Anzeigenmarkt
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 02:49 Uhr.