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 Bewertung: Bewertung: 1 Stimmen, 5,00 durchschnittlich.
  #1 (permalink)  
Alt 11-02-2009, 23:57
heisti
 Newbie
Links : Onlinestatus : heisti ist offline
Registriert seit: Dec 2008
Beiträge: 15
heisti ist zur Zeit noch ein unbeschriebenes Blatt
Standard checkboxen auf checked setzen (Edit-Formular)

Hallo,

eine Anfängerfrage. Es geht schon damit los, das ich gar nicht genau weiß, in welchem Themenbereich ich schreiben soll.

Ich habe mit Hilfe von mehreren Checkboxen in einem Formular Werte in einen DB geschrieben. Die Checkboxen haben alle den gleichen Namen - z. B. tiere[]. Das gebildete Array habe ich mit implode zerlegt und jeweils mit <br /> versehen, damit ich die Werte anschließend an anderer Stelle untereinander darstellen kann.

Jetzt möchte ich ein Formular haben, in dem die bereits schon mal ausgewählten Checkboxen beim Aufrufen auf checked stehen. Vielleicht sollte ich noch dazusagen, dass es sich um recht viele Werte handelt.

Ich habe keinen blassen Schimmer ob das überhaupt geht und auch keinen Ansatz. Hat jemand eine Idee und kann mir evtl. helfen?

Vielen Dank
Heisti

Geändert von heisti (12-02-2009 um 00:28 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 12-02-2009, 00:18
php_fussel
 Newbie
Links : Onlinestatus : php_fussel ist offline
Registriert seit: Jan 2009
Beiträge: 120
php_fussel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

checked="checked"

Guckst Du hier!

... ein bischen Arbeit sollte man sich schon machen!

edit: Jetzt versteh ich erst mal was Du meinst. In dem Fall müßten die ausgewählten und in der DB gespeicherten Werte wieder ausgelesen werden und die betreffenden checkboxen dann wie oben erläutert auf checked gesetzt werden! Aber ich bin jetzt müde und muss ins Bett ...

edit: Da ist doch noch einer wach ...

Geändert von php_fussel (12-02-2009 um 00:27 Uhr)
Mit Zitat antworten
  #3 (permalink)  
Alt 12-02-2009, 00:20
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Die Werte aus der DB auslesen und wenn der da als markiert drin steht, halt
<input type="checkbox" checked="checked" />
ausgeben - also das checked-Attribut hinzufügen.
Mit Zitat antworten
  #4 (permalink)  
Alt 12-02-2009, 00:40
heisti
 Newbie
Links : Onlinestatus : heisti ist offline
Registriert seit: Dec 2008
Beiträge: 15
heisti ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@php_fussel

genau das ist mein Problem. In der DB steht jetzt z. B. Hund<br />Katze<br /> (in einer Zelle).

In meinem Formular habe ich dann z. B. die Checkboxen mit Hund, Katze, Maus, Regenwurm

Kann man jetzt mit irgendeiner Funktion aus dem DB-Eintrag wieder ein Array machen (explode??) und irgendwas in die Checkbox-Zeile schreiben, damit automatisch Hund und Katze als checked markiert werden?

Der Anwender soll ja in dem Edit-Formular die Möglichkeit haben sein bisherigen Eingaben zu ergänzen bzw. schon ausgewählte Sachen auch wieder abwählen zu können.

Ich weiß nicht, wie ich es anders erklären soll.

Danke für Eure Überlegungen
Heisti
Mit Zitat antworten
  #5 (permalink)  
Alt 12-02-2009, 02:04
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von heisti
genau das ist mein Problem. In der DB steht jetzt z. B. Hund<br />Katze<br /> (in einer Zelle).
Dieses Problem solltest du zuerst beheben - das ist naemlich eine ganz bescheidene Datenstruktur!

Beschaeftige dich mit dem Stichwort Normalisierung;
und schau dir ggf. auch die Spaltentypen ENUM und SET an, die MySQL anbietet.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #6 (permalink)  
Alt 12-02-2009, 09:17
php_fussel
 Newbie
Links : Onlinestatus : php_fussel ist offline
Registriert seit: Jan 2009
Beiträge: 120
php_fussel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Das gebildete Array habe ich mit implode zerlegt und jeweils mit <br /> versehen, damit ich die Werte anschließend an anderer Stelle untereinander darstellen kann.
Guten Morgen, wie unser Herr wahsaga schon sagt, ist die Datenstruktur innerhalb Deiner Datenbank mehr als Bescheiden.

Zitat:
Kann man jetzt mit irgendeiner Funktion aus dem DB-Eintrag wieder ein Array machen
Wenn Du Daten aus eine Datenbank holst, dann liegen diese automatisch als array vor (1 Zeile mit mehreren Datensätzen). Das array ist dann wie Deine Datenbank aufgebaut (wenn Du alles holst --> select * from ...), d.h. erstes Feld in der Datenbank ist z.B. die ID, dann hat das Daten-array am index 0 (datenarray[0]) halt die ID usw., wodrauf man dann zugreifen kann (for-Schleife, foeach-Schleife, direkt per wert10=datenarray[9]!

Versuch: Alle Werte der Checkboxen bekommen innerhalb der Datenbank schon mal eine eigene Spalte ... also eine für Hund, eine für Katze usw. ( ID etc. ... ich weiss nicht genau, was der Zweck ist) oder Tier1, Tier2, ...! Wenn nun Dein (teil-) ausgefülltes Formular abgeschickt wird, dann nimmst Du die einzelnen 'values' der checkboxen entgegen und schreibst diese in die Datenbank in das dafür vorgesehene Feld. Nun kannst Du das Feld einfach mit true füllen (boolean --> Hund, Katze, ...), wenn die betreffende Checkbox ausgefüllt wurde, ansonsten false oder Du schreibst den value in das jeweilige Feld (Tier1 bekommt Hund, Tier2 bekommt - , Tier 3 bekommt Maus, ...).
Vielleicht kannst Du damit schon mal was anfangen ... ich muss jetzt erst mal frühstücken und noch Bewerbungen schreiben.

Gruß php-fussel
Mit Zitat antworten
  #7 (permalink)  
Alt 12-02-2009, 09:42
heisti
 Newbie
Links : Onlinestatus : heisti ist offline
Registriert seit: Dec 2008
Beiträge: 15
heisti ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Guten Morgen, guten Appetit beim Frühstück und viel Erfolg bei der Bewerbung.

Das Problem ist, dass ja breits alles so ist wie es ist. Ich müsste also erst mal grundsätzlich alles wieder umbauen und eine neue Tabelle mit mehr als 300 Spalten anlegen. Keine so prickelnde Vorstellung.

Gibt es keine Möglichkeit den Inhalt eines Array auf einen bestimmten Wert zu überprüfen? Also so was wie if §tiere[] == "maus"

Danke für Eure Bemühungen!

Gruß
Heisti
Mit Zitat antworten
  #8 (permalink)  
Alt 12-02-2009, 10:03
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

in_array(), array_search(), selber mal ins Manual schauen
Mit Zitat antworten
  #9 (permalink)  
Alt 12-02-2009, 10:27
php_fussel
 Newbie
Links : Onlinestatus : php_fussel ist offline
Registriert seit: Jan 2009
Beiträge: 120
php_fussel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

PHP-Code:
$such_array = array("Ente""Maus", ...);
$gefunden=0;

for(
$i =0$i count($daten_array_aus_DB;$i++){

     for(
$a=0;$a count($such_array);$a++){

           if(
$daten_array_aus_DB[$i] == $such_array[$a]{

                 
$checked_array[$gefunden]=$daten_array_aus_DB[$i] ;
                 
$gefunden++;
           }
         

     }


... nur eben schnell runtergetippt und NICHT getestet (bevor ich hier zerissen werde ). Es mit den php-Funktionen zu machen, um ein array auszulesen ist eleganter ... aber zum Üben solltest Du Dir diese Vorgehensweise (erst) mal ansehen.

Das $checked_array würde/müßte dann die ausgewählten Daten enthalten, die Du dann ausgeben kannst ...
PHP-Code:
for($x =0$x count($checked_array);$x++){

      echo 
checked_array[$x]."<br>";


Gruß php_fussel

Geändert von php_fussel (12-02-2009 um 10:30 Uhr)
Mit Zitat antworten
  #10 (permalink)  
Alt 12-02-2009, 14:21
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von heisti
Das Problem ist, dass ja breits alles so ist wie es ist.
Dann ist jetzt der Zeitpunkt, es zu aendern.

Ein gutes Datenmodell ist die Basis jedes vernuenftigen Scripts oder Programms.

Zitat:
Ich müsste also erst mal grundsätzlich alles wieder umbauen und eine neue Tabelle mit mehr als 300 Spalten anlegen.
Das klingt auch wieder bloedsinnig - und ganz und gar nicht so, als ob du dich mit dem Stichwort Normalisierung auseinandergesetzt haettest.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #11 (permalink)  
Alt 12-02-2009, 15:14
dani_o
 PHP Senior
Links : Onlinestatus : dani_o ist offline
Registriert seit: Jun 2003
Ort: Lichtenstein/Sa.
Beiträge: 1.599
dani_o befindet sich auf einem aufstrebenden Ast
Standard

da muss ich wahsaga zustimmen - was spricht dagegen ein script zu progen was die derzeitige db ausliest und eine neue automatisch erstellt? anhand ner guten programmierung = ne arbeit von 10 min und du musst nich alle inhalte von hand eingeben - überleg dir nur vorher ne vernünftige struktur und überdenke, was du später noch brauchen könntest ...
__________________
Signatur-Text ...
Mit Zitat antworten
  #12 (permalink)  
Alt 12-02-2009, 23:18
heisti
 Newbie
Links : Onlinestatus : heisti ist offline
Registriert seit: Dec 2008
Beiträge: 15
heisti ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Erst mal vielen Dank für Eure Bemühungen. Ich muss gestehen, dass Ihr mein Wissen bei weitem überschätzt. Wie ich oben schon schrieb, bin ich Anfänger und muss erst noch in die Strukturen reinwachsen. Wenn ich weiß was ich hier überhaupt mache und was man alles machen kann, dann werden auch die Abläufe und der Code geschmeidiger.

Mit einem Freund habe ich nun folgendes geschnitzt:

PHP-Code:
$tierarten=Array('hund''katze''maus''regenwurm''ratte'); 
$ergebnisliste_tierhalter $data["tiere"];
$ergebnis_array=explode("<br />",$ergebnisliste_tierhalter); 
Und für die Checkboxen:

PHP-Code:
<? foreach($tierarten as $tiere
{
?>
<input type="checkbox" name="tiere[]" value="<?php echo $tiere;?>
<?php if (in_array($tiere$ergebnis_array)){ echo " checked"; } ?> /> 
<?php echo $tiere?> <br /> <?php ?>
Sieht bisher so aus, als wenn es funktioniert.

Viele Grüße
Heisti
Mit Zitat antworten
  #13 (permalink)  
Alt 26-03-2014, 15:38
Schenol
 Registrierter Benutzer
Links : Onlinestatus : Schenol ist offline
Registriert seit: Mar 2014
Beiträge: 1
Schenol befindet sich auf einem aufstrebenden Ast
Talking Checkbox auf Checked setzen

machs einfach so z.b.:

$box = '"checked="';
$boxx = 'checked"';
if (isset($_POST['box'])) {$boxxx = $box.$boxx;}

<p><input name="box" id="in" type="checkbox" value="<?php echo $boxxx ;?>"></p>

somit hast du die Variable $boxxx auf "checked="checked" gesetzt und kannst es mit einem alleinigen echo $boxxx ausgeben.

und es funktioniert auch ;-) habe selbst lange gebraucht aber guter letzt die Lösung gefunden durch hin und her testen ;-)
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

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 07:05 Uhr.