Veröffentlicht 25. Februar 201114 j Hallo. Ich habe einen Teaser mit 5 Checkboxen erstellt. Jede Checkbox ist für ein Thema. Mehrfachauswahl ist möglich. Auch eine Seitennavigation ist vorhanden. Wenn ich die Checkboxen anhake werden die Artikel aus der Datenbank gelesen und auch angezeigt. Aber wenn ich eine Seite weiter klicke dann ist keine Checkbox mehr angehakt. Wie bekomme ich es hin (mit PHP), so dass beim blättern durch die einzelnen Artikel die Häkchen immer noch aktiviert sind und ich weiter auswählen und blättern kann. Wie mache ich das? Könntet ihr mir da ne Lösung schreiben? Gruß :confused:
25. Februar 201114 j Hallo. Ich habe einen Teaser mit 5 Checkboxen erstellt. Jede Checkbox ist für ein Thema. Mehrfachauswahl ist möglich. Auch eine Seitennavigation ist vorhanden. Wenn ich die Checkboxen anhake werden die Artikel aus der Datenbank gelesen und auch angezeigt. Aber wenn ich eine Seite weiter klicke dann ist keine Checkbox mehr angehakt. Wie bekomme ich es hin (mit PHP), so dass beim blättern durch die einzelnen Artikel die Häkchen immer noch aktiviert sind und ich weiter auswählen und blättern kann. Wie mache ich das? Könntet ihr mir da ne Lösung schreiben? Gruß :confused: Guck dir mal Cookies unter PHP an. Kleine Erklärung: Quakenet/#php Tutorial - de - Cookies ansonsten einfach mal php-einfach.de besuchen die haben sehr gute Tuts.
1. März 201114 j Oder mit JavaScript die Links manipulieren (GET), diese dann wieder auslenen und deine Haken setzen.... Oder mit AJAX. Oder nochmal mit JavaScript - darüber die Kekese setzen. Oder mit PHP in die Session schreiben (serverseitig). Oder wie schon erwähnt - mit PHP ein Keks erzeugen (clientseitig). Der Möglichkeiten gäbe es da viele, nur die *Passendste* zu finden ist eher die Herausforderung. Um das mal mit einfachen Worten zu beschreiben. - Wenn du auf einen Link klickst, wie sollen die Daten denn zum Server kommen? (FORM? gut könnte man auch mit JS erschlagen : onclick.formid.submit()) - Haken setzen, diese dann bestätigen (Submit aus einem FORM herraus)? Dann erst die Möglichkeit weiter zu blättern. usw..... Ich für meinen Teil - würde das stupide mit JS machen. onchange auf die Checkboxen... und darüber den Keks setzen. Q'nD! Aber effektiv! vG
2. März 201114 j Du speicherst am besten den Stand der Eingaben in einem DTO und prüfst beim rendern der Boxen auf die Werte. Einfaches Beispiel: checkedIsTrue = $data->isTrue() ? 'checked="checked"' : ''; echo <<<ENDCHECKBOX <input type="checkbox" $checkedIsTrue name="isTrue" value="1"/> END; [/PHP] und die Verarbeitung: [PHP] $data->isTrue = isset($_POST['isTrue']) ? untaint($_POST['isTrue']) : NULL; Wo du dein DTO speicherst ist eigentlich egal. Du solltest dir nur ausreichend Gedanken zu Lebenszeit der Daten machen.
2. März 201114 j Autor Vielen Dank für Eure Antworten... aber ich bekomme es einfach nicht hin... ich habe mir sämtliche Tutorials angeschaut. Wie es aussieht bin ich zu blöd es zu verstehen... Von JS habe ich keine Ahnung und ich bin PHP-Frischling. Mit Cookies und so weiter habe ich es auch schon probiert aber ich steige da einfach nicht durch. Hier ist mal das Formular mit den Checkboxen: echo "<form id=\"ebene2\" name=\"form1\" action=\"neueartikel3.php\" target=\"_self\" method=\"GET\" onChange=\"document.forms.form1.submit()\" > <input type=\"checkbox\" name=\"box1\" value=\"Businessplan\" $sel1>Businessplan <input type=\"checkbox\" name=\"box2\" value=\"Finanzen\" $sel2>Finanzen, Fördermittel <input type=\"checkbox\" name=\"box3\" value=\"Marketing, PR\" $sel3>Marketing, PR <input type=\"checkbox\" name=\"box4\" value=\"Internet\" $sel4>Internet <input type=\"checkbox\" name=\"box5\" value=\"Existenzgründung\" $sel5>Existenzgründung </form>"; Und hiermit prüfe ich ob die Checkboxen angehakt sind: if (isset($_GET['box1'])) { $sel1 = 'checked'; $box1 = 'Businessplan'; } else { $sel1 = "unchecked"; $box1 = ''; } if (isset($_GET['box2'])) { $sel2 = "checked"; $box2 = 'Finanzen'; } else { $sel2 = "unchecked"; $box2 = ''; } if (isset($_GET['box3'])) { $sel3 = "checked"; $box3 = 'Marketing, PR'; } else { $sel3 = "unchecked"; $box3 = ''; } if (isset($_GET['box4'])) { $sel4 = "checked"; $box4 = 'Internet'; } else { $sel4 = "unchecked"; $box4 = ''; } if (isset($_GET['box5'])) { $sel5 = "checked"; $box5 = 'Existenzgründung'; } else { $sel5 = "unchecked"; $box5 = ''; } Das ganze klappt aber irgendwie nicht. Sobald ich den Button drücke um die nächsten Ergebnisse anzeigen zu lassen sind die Checkboxen nicht mehr angehakt:( Es wäre echt nett wenn mir jemand von Euch dabei helfen könnte. DANKE
2. März 201114 j Als erstes solltest du hier im Forum mal BBC benutzen (CODE) oder (PHP) - damit man dein Quellcode besser lesen kann. Was soll das onChange im FORM? Was wolltest du damit bezwecken.Ich sehe aber nichts von Kekesen! Oder etwaiger Session Es reicht zu, wenn du checked setzt.Würde ich die Checkboxen in ein Array packen Aber das kann man ja machen, wenn man den Rest schön hat! session_start();//janz wischtüsch #..... #hier mit deiner Variante + Session if(isset($_POST['box1'])) { $_SESSION['box1']='checked'; } #.... echo '..... <input type="checkbox" name="box1" value="Businessplan" '.$_SESSION['box1'].' />.... .... '; [/PHP]
2. März 201114 j Autor Vielen Dank für deine schnelle Antwort... Ich werde es direkt mal einbauen... LG
2. März 201114 j Du könntest auch deinen kompletten Quelltest auf PasteBin online stellen. Schau aber.. das du keine Passwörter mit postest.
2. März 201114 j Autor grml... ich habe jetzt so einiges ausprobiert aber ich bekomme es tatsächlich nicht hin :old ich weiß echt nicht wie ich was wo einbauen muß damit es klappt...
2. März 201114 j Autor Du könntest auch deinen kompletten Quelltest auf PasteBin online stellen. Schau aber.. das du keine Passwörter mit postest. Ich habs mal bei pastebin.com reingestellt
7. März 201114 j <form action="GET"> <input type="checkbox" name="checkboxName" <? if(isset($_POST['checkboxName']))echo'checked="checked";?> /> </form>
7. März 201114 j <form action="GET"> <input type="checkbox" name="checkboxName" <? if(isset($_POST['checkboxName']))echo'checked="checked";?> /> </form> War nicht seine Frage!
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.