Objekte filtern mittels Checkboxes

Fragen zum Erstellen von Templates für webEdition.
Online
Benutzeravatar
christobal
Senior Member
Beiträge: 313
Registriert: Do 4. Nov 2010, 13:03
Wohnort: Reith bei Seefeld, Tirol - Österreich
Kontaktdaten:

Objekte filtern mittels Checkboxes

Beitragvon christobal » Mo 22. Okt 2018, 15:22

Kalt ists in Tirol!
Und ich verstehs nicht mehr...

Ich hab Objekte, wo ich Checkboxes verwende. Z.B.: "Hosting" und "SSL". Nun will ich eine Filterseite realisieren wo ich mittels Formular und Checkboxes alle Objekte auflisten kann, wo die Checkbox "Hosting" im Objekt aktiv ist. Der Vorteil der Filterung durch Checkboxes wäre das unterschiedl. Kombinieren derselben.

Code: Alles auswählen

<we:form id="self">
<input name="hosting" type="checkbox" /> <label>Hosting</label><br />
<input name="ssl" type="checkbox" /> <label>SSL</label><br />
<button type="submit">OK</button>
</we:form>

<we:condition name="condi">
<we:conditionAdd field="Hosting" var="hosting" compare="=" />
<we:conditionAnd />
<we:conditionAdd field="SSL" var="ssl" compare="=" />
</we:condition>

<we:listview type="object" name="webref" classid="11" condition="\$condi">
Kann mir bitte wer helfen, wo ich da einen Denkfehler habe?
Christoph
BIG Detail, Kaspar & Sigl OG
Riedgasse 8b
A-6020 Innsbruck
Tel. +43 512 346070-40
Fax +43 512 346070-20
Mobil: +43 676 3438011

christoph.kaspar@bigdetail.com
http://www.bigdetail.com

WBTMagnum
webEdition Partner
webEdition Partner
Beiträge: 1825
Registriert: Di 7. Mär 2006, 16:50
Wohnort: Wien
Kontaktdaten:

Re: Objekte filtern mittels Checkboxes

Beitragvon WBTMagnum » Mo 22. Okt 2018, 21:16

Hallo Christoph,

Vermutlich musst du bei <we:conditionAdd> noch type="request" angeben (sh. Tag Referenz).

Bin mir jetzt aber nicht sicher, ob das vom Vergleich immer klappen wird. Checkboxen sind da manchmal etwas eigen.

HTH,
Sascha

Online
Benutzeravatar
christobal
Senior Member
Beiträge: 313
Registriert: Do 4. Nov 2010, 13:03
Wohnort: Reith bei Seefeld, Tirol - Österreich
Kontaktdaten:

Re: Objekte filtern mittels Checkboxes

Beitragvon christobal » Di 23. Okt 2018, 09:29

Grüß Dich Sascha im Osten!
Und Danke fürs Helfen!!

Code: Alles auswählen

<we:condition name="condi">
<we:conditionAdd field="Nurhosting" var="hosting" compare="=" type="request" />
<we:conditionAnd />
<we:conditionAdd field="SSL" var="ssl" compare="=" type="request" />
</we:condition>

<div class="alert alert-success" role="alert">Condition: <?php echo $condi ?></div>
Hab ich ergänzt, funzt leider noch nicht und ein Echo draufgemacht, das sagt:
Condition: ((Nurhosting = "on") AND (SSL = "") )

Hast Du da evtl. noch eine Idee?
Christoph
BIG Detail, Kaspar & Sigl OG
Riedgasse 8b
A-6020 Innsbruck
Tel. +43 512 346070-40
Fax +43 512 346070-20
Mobil: +43 676 3438011

christoph.kaspar@bigdetail.com
http://www.bigdetail.com

WBTMagnum
webEdition Partner
webEdition Partner
Beiträge: 1825
Registriert: Di 7. Mär 2006, 16:50
Wohnort: Wien
Kontaktdaten:

Re: Objekte filtern mittels Checkboxes

Beitragvon WBTMagnum » Di 23. Okt 2018, 09:48

Hallo Christoph,

Ich nehme an der Value stimmt nicht mit dem erwarteten Value überein. Daher klappt das nicht. Habe jetzt aber leider auch kein passendes Beispiel bei der Hand.

Liebe Grüße,
Sascha

Benutzeravatar
haydi
Senior Member
Beiträge: 645
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Hirschberg
Kontaktdaten:

Re: Objekte filtern mittels Checkboxes

Beitragvon haydi » Di 23. Okt 2018, 10:53

Huhuuu,

geht es denn darum, dass in der Variablen für SSL anscheinend nichts drin steht?
Haste mal den Input für "SSL" ausgegeben? Also außerhalb der Condition, um zu überprüfen, ob denn überhaupt was drin steht. Denn wenn nichts drin steht, dann stimmt ja die Condition.

ciao
heidi
Heidi Wetzel
Internet-Applikationen & Webseiten-Erstellung
https://www.heidi-wetzel.de

Online
Benutzeravatar
christobal
Senior Member
Beiträge: 313
Registriert: Do 4. Nov 2010, 13:03
Wohnort: Reith bei Seefeld, Tirol - Österreich
Kontaktdaten:

Re: Objekte filtern mittels Checkboxes

Beitragvon christobal » Di 23. Okt 2018, 14:10

Grüß Dich Heidi,

nein, es wird gar keine Filterung durchgeführt! Ich hab ja in meiner Filterabfrage Checkboxen. Und egal ob ich eine oder mehrere oder keine aktiviere, bekomme ich immer die komplette Auflistung aller Objekte.

Kopfkratz und liebe Grüße und Danke!
Christoph
BIG Detail, Kaspar & Sigl OG
Riedgasse 8b
A-6020 Innsbruck
Tel. +43 512 346070-40
Fax +43 512 346070-20
Mobil: +43 676 3438011

christoph.kaspar@bigdetail.com
http://www.bigdetail.com

Benutzeravatar
haydi
Senior Member
Beiträge: 645
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Hirschberg
Kontaktdaten:

Re: Objekte filtern mittels Checkboxes

Beitragvon haydi » Di 23. Okt 2018, 14:58

Huhuu,

okay, zunächst wäre es gut zu wissen, was denn der Wert ist den die Checkbox hat, wenn sie aktiviert wird.
Ich schätze mal, da wird dann eine "1" drinstehen?

Hast du mal versucht in der Listview eine manuell geschriebene condition durchzuführen?
Also zunächst solltest du die Syntax identifizieren die es braucht, damit es klappt. Weißte, was ich meine?

Code: Alles auswählen

<?php
$condi = ' ("Nurhosting" = "1") ';
?>
bzw.

Code: Alles auswählen

<?php
$condi = ' ("SSL" = "1") ';
?>
bzw.

Code: Alles auswählen

<?php
$condi = ' ("Nurhosting" = "1" AND  "SSL" = "1")) ';
?>
... kommt da was gescheites raus?

Oder muss da doch tatsächlich ein "on" als Wert drinstehen??

Und noch einen Hinweis:
Bei der listview kein Backslash beim Attribut condition schreiben... ist ja keine globale Variable.

Code: Alles auswählen

<we:listview type="object" name="webref" classid="11" condition="$condi">
Heidi Wetzel
Internet-Applikationen & Webseiten-Erstellung
https://www.heidi-wetzel.de

Online
Benutzeravatar
christobal
Senior Member
Beiträge: 313
Registriert: Do 4. Nov 2010, 13:03
Wohnort: Reith bei Seefeld, Tirol - Österreich
Kontaktdaten:

christobal

Beitragvon christobal » Mi 24. Okt 2018, 11:26

Grüß Dich Heidi, und danke für die Hilfe!!

wenn ich

Code: Alles auswählen

<?php
$condi = ' (SSL=1) ';
?>
bzw.

Code: Alles auswählen

<?php
$condi = ' (Nurhosting=1) ';
?>
bzw.

Code: Alles auswählen

<?php
$condi = ' (SSL=1 AND Nurhosting=1) ';
?>
eingebe, funktionierts!
Das "on" erfindet das Formular selber!
So schaut der Formular-Checkbox-Schnipsel aus:

Code: Alles auswählen

<label><input name="hosting" type="checkbox" /> nur Hosting</label>
Kannst Du mir bitte weiterhelfen?
Christoph
BIG Detail, Kaspar & Sigl OG
Riedgasse 8b
A-6020 Innsbruck
Tel. +43 512 346070-40
Fax +43 512 346070-20
Mobil: +43 676 3438011

christoph.kaspar@bigdetail.com
http://www.bigdetail.com

Benutzeravatar
haydi
Senior Member
Beiträge: 645
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Hirschberg
Kontaktdaten:

Re: Objekte filtern mittels Checkboxes

Beitragvon haydi » Mi 24. Okt 2018, 11:46

Huhuu,

na also. Dann sind wir doch schon mal weiter! :)
Es liegt also nicht an der listview selbst oder unbedingt an der condition... sondern einfach am Wert.

Ich krieg jetzt auf die Ohren mit meinem vielen PHP... Das kann man dann natürlich noch schön umschreiben mit we-Tags.

Ich gebe dir jetzt erstmal einen Weg mit reinem PHP.

Code: Alles auswählen

<?php

$condi = (string) ' AND 1 '; // initialisieren

$filterSSL = (isset($_REQUEST['ssl']) ? 1 : 0; // Voraussetzung: Name des checkbox inputs ist "ssl"
if ($filterSSL) {
  $condi = ' AND SSL="1"'; // die anführungszeichen bei 1 evtl. entfernen
}

$filterHosting = (isset($_REQUEST['hosting']) ? 1 : 0; // Voraussetzung: Name des checkbox inputs ist "hosting"
if ($filterHosting) {
  $condi = ' AND SSL="1"'; // die anführungszeichen bei 1 evtl. entfernen
}

?>
tschussle
heidi
Heidi Wetzel
Internet-Applikationen & Webseiten-Erstellung
https://www.heidi-wetzel.de

Benutzeravatar
haydi
Senior Member
Beiträge: 645
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Hirschberg
Kontaktdaten:

Re: Objekte filtern mittels Checkboxes

Beitragvon haydi » Mi 24. Okt 2018, 11:48

.. ups... kleiner fehler.... bei hosting muss es natürlich lauten ...

Code: Alles auswählen

if ($filterHosting) {
  $condi = ' AND Nurhosting="1"'; // die anführungszeichen bei 1 evtl. entfernen
}
sorry!
Heidi Wetzel
Internet-Applikationen & Webseiten-Erstellung
https://www.heidi-wetzel.de

Online
Benutzeravatar
christobal
Senior Member
Beiträge: 313
Registriert: Do 4. Nov 2010, 13:03
Wohnort: Reith bei Seefeld, Tirol - Österreich
Kontaktdaten:

christobal

Beitragvon christobal » Mi 24. Okt 2018, 15:15

Dankta Heidi, funzt alle schon ein bissl besser!
2 Klammern waren noch zu schließen und die "AND" mochte er nicht.

So klappt entweder die erste oder die zweite Checkbox:

Code: Alles auswählen

<?php

$filterHosting = (isset($_REQUEST['hosting']) ? 1 : 0);
if ($filterHosting) {
  $condi = 'Nurhosting=1';
}

$filterSSL = (isset($_REQUEST['ssl']) ? 1 : 0);
if ($filterSSL) {
  $condi = 'SSL=1';
}

?>
Nicht aber wenn ich beide Checkboxes aktiviere!
Kannst Du bitte nochmals Dein Aug draufwerfen!
BIG Detail, Kaspar & Sigl OG
Riedgasse 8b
A-6020 Innsbruck
Tel. +43 512 346070-40
Fax +43 512 346070-20
Mobil: +43 676 3438011

christoph.kaspar@bigdetail.com
http://www.bigdetail.com

Benutzeravatar
haydi
Senior Member
Beiträge: 645
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Hirschberg
Kontaktdaten:

Re: Objekte filtern mittels Checkboxes

Beitragvon haydi » Mi 24. Okt 2018, 15:41

Sorry, das passiert, wenn man Code auf die Schnelle und "blind" schreibt, d.h. ohne zu testen ... ;-)

Hier der verbesserte Code...

Code: Alles auswählen

<?php

$condi = (string) ' AND 1 '; // initialisieren

$filterSSL = (isset($_REQUEST['ssl'])) ? 1 : 0; // Voraussetzung: Name des checkbox inputs ist "ssl"
if ($filterSSL) {
  $condi .= ' AND SSL="1"'; // die anführungszeichen bei 1 evtl. entfernen
}

$filterHosting = (isset($_REQUEST['hosting'])) ? 1 : 0; // Voraussetzung: Name des checkbox inputs ist "hosting"
if ($filterHosting) {
  $condi .= ' AND Nurhosting="1"'; // die anführungszeichen bei 1 evtl. entfernen
}

?>
Ich hoffe, jetzt sind alle Fehler raus...
Klar, jeweils eine Klammer hat gefehlt und ich hatte jeweils einen Punkt vergessen bei $condi... damit wird der String angehängt und nicht ersetzt...
nach wie vor nicht getestet. hoffe jedoch, jetzt ist kein würmchen mehr drin.

ciao
heidi
Heidi Wetzel
Internet-Applikationen & Webseiten-Erstellung
https://www.heidi-wetzel.de

Online
Benutzeravatar
christobal
Senior Member
Beiträge: 313
Registriert: Do 4. Nov 2010, 13:03
Wohnort: Reith bei Seefeld, Tirol - Österreich
Kontaktdaten:

Re: Objekte filtern mittels Checkboxes

Beitragvon christobal » Mi 24. Okt 2018, 16:11

Danke Heidi fürs hartnäckige Dranbleiben!

wenn ich beide Checkboxes aktiviere gibt mir das Echo ff. aus:
AND 1 AND SSL="1" AND Nurhosting="1"

wenn ich nur eine Checkbox aktiviere, bekomme ich ff. Echo:
AND 1 AND Nurhosting="1"

wenn ich die Initialisierung entferne und nur eine Checkbox aktiviere:
AND Nurhosting="1"

wenn ich die Initialisierung, die Anführungszeichen und das erste AND entferne klappts mit 2 ausgewählten Checkboxen:
SSL=1 AND Nurhosting=1

es ist zum Haarentfernen...
BIG Detail, Kaspar & Sigl OG
Riedgasse 8b
A-6020 Innsbruck
Tel. +43 512 346070-40
Fax +43 512 346070-20
Mobil: +43 676 3438011

christoph.kaspar@bigdetail.com
http://www.bigdetail.com

Online
Benutzeravatar
christobal
Senior Member
Beiträge: 313
Registriert: Do 4. Nov 2010, 13:03
Wohnort: Reith bei Seefeld, Tirol - Österreich
Kontaktdaten:

Re: Objekte filtern mittels Checkboxes

Beitragvon christobal » Mi 24. Okt 2018, 17:03

jetzt korrigier ich mich selber!
Ich hab einfach ein Script eingebaut, das aus den on/off ein 1/0 macht

Code: Alles auswählen

<script type="text/javascript"> 
$('input[type="checkbox"]').change(function(){
    this.value = +this.checked;
});
</script> 
und fahre dann mit den webEdition-Bordmitteln weiter

Code: Alles auswählen

<we:condition name="condi">
<we:conditionAdd field="Nurhosting" compare="=" type="request" var="hosting" />
<we:conditionAnd />
<we:conditionAdd field="SSL" compare="=" type="request" var="ssl" />
</we:condition>
das klappt und ich danke Dir trotzdem fest!
BIG Detail, Kaspar & Sigl OG
Riedgasse 8b
A-6020 Innsbruck
Tel. +43 512 346070-40
Fax +43 512 346070-20
Mobil: +43 676 3438011

christoph.kaspar@bigdetail.com
http://www.bigdetail.com

WBTMagnum
webEdition Partner
webEdition Partner
Beiträge: 1825
Registriert: Di 7. Mär 2006, 16:50
Wohnort: Wien
Kontaktdaten:

Re: Objekte filtern mittels Checkboxes

Beitragvon WBTMagnum » Mi 24. Okt 2018, 22:46

Hallo Christoph,

Kannst du nicht einfach den Value im Input setzen?

Code: Alles auswählen

<input type="checkbox" name="hosting" id="hosting" value="1" /> <label for="hosting">Hosting</label><br />
<input type="checkbox" name="ssl" id="ssl" value="1" /> <label for="ssl">SSL</label><br />
Das sollte eigentlich auch den gewünschten Effekt haben.

BTW: Im Sinne der Barrierefreiheit solltest du das label mit dem input verknüpfen :wink: (sh. MDN: <input type="checkbox">)

HTH,
Sascha


Zurück zu „webEdition Templates erstellen (we:Tags)“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 13 Gäste