Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Checkboxen angehakt lassen

Empfohlene Antworten

Veröffentlicht

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:

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.;)

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

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.

  • 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

Als erstes solltest du hier im Forum mal BBC benutzen (CODE) oder (PHP) - damit man dein Quellcode besser lesen kann.

  1. Was soll das onChange im FORM? Was wolltest du damit bezwecken.
  2. Ich sehe aber nichts von Kekesen! Oder etwaiger Session :D
  3. Es reicht zu, wenn du
    checked

    setzt.

  4. 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]

  • 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...

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.