Checkboxen auswerten in Array

Fragen zum Entwickeln eigener Addons?

Moderator: General Support Moderators

Forum rules
Forumregeln
Locked
Nikolino10
Joomla! Apprentice
Joomla! Apprentice
Posts: 13
Joined: Wed Dec 26, 2012 11:28 pm

Checkboxen auswerten in Array

Post by Nikolino10 » Mon Jul 14, 2014 6:31 pm

Hallo,

Ich such schon seit tagen eine antwort für mein checkboxen problem!
Ich habe eine variable $category in welcher die Kategorie von einem Produkt gespeichert ist (diese lese ich mit SQL statements aus der DB)
Ich möchte drei checkboxen (1: Category A, 2: Category B and 3: Category C) und einen submit button anzeigen. Wenn man jetzt etwas checked, sollen die gecheckten werte in ein Array gespeichert werden. Dann durchsuche ich das Array ob sich $category darin befindet und arbeite dann damit weiter.

Hier mein Code für die Checkboxen:

Code: Select all

<form action="default_grid.php" method="post">
Filtern nach:
   <input type="checkbox" name="c_a" value="Cat A" checked="checked"/> Cat A 
   <input type="checkbox" name="c_b" value="Cat B" checked="checked"/> Cat B
   <input type="checkbox" name="c_c" value="Cat C" checked="checked"/> Cat C 
 
   <input type="submit" value="Anzeigen"/>
</form>

Welchen php Code brauch ich jetzt für die Speicherung in einem Array
Ich glaue etwas mit JRequest::getVar

Danke,
Nik

RedEye
Joomla! Ace
Joomla! Ace
Posts: 1460
Joined: Sat Jan 21, 2006 8:42 pm

Re: Checkboxen auswerten in Array

Post by RedEye » Tue Jul 15, 2014 12:03 am

Zunächst mal musst du deine Form ändern:

Code: Select all

<input type="checkbox" name="c[]" value="Cat A" checked="checked"/>
<input type="checkbox" name="c[]" value="Cat B" checked="checked"/>
<input type="checkbox" name="c[]" value="Cat C" checked="checked"/>
Die Klammern sind ausschlaggebend hier!

JRequest ist schon seit ner Ewigkeit überholt, benutze JInput.
http://docs.joomla.org/Retrieving_reque ... ing_JInput

Code: Select all

$categorieArray = JFactory::getApplication()->input->post->get('c', null, 'array');

Nikolino10
Joomla! Apprentice
Joomla! Apprentice
Posts: 13
Joined: Wed Dec 26, 2012 11:28 pm

Re: Checkboxen auswerten in Array

Post by Nikolino10 » Tue Jul 15, 2014 3:06 pm

vielen Dank RedEye für die schnelle Antwort!!!!

ich glaube ich hab noch paar probleme bei der überprüfung ob $produkt_kategorie (die kategorie die ich aus der DB gelesen hab) gleich einem gecheckten element ist.

Code: Select all

for ($x=0, $x < count( $categorieArray ); $x++)
	{
		if($produkt_kategorie == $categorieArray[$x])
		{
                       ...
                 }
         }
ich hab außerdem

Code: Select all

echo "$categorieArray[0]";
getestet, es tut sich nichts wenn ich auf submit klicke.

RedEye
Joomla! Ace
Joomla! Ace
Posts: 1460
Joined: Sat Jan 21, 2006 8:42 pm

Re: Checkboxen auswerten in Array

Post by RedEye » Tue Jul 15, 2014 3:36 pm

Wenn du eine for Schleife nutzt, benutze niemals count() wie in deinem Beispiel!

Code: Select all

$count = count($categorieArray);
for($x=0, $x < $count; $x++)
{
...
}
Mit ner foreach könnte es so aussehen:

Code: Select all

foreach ($categorieArray as $cat)
{
    if ($produkt_kategorie !== $cat)
    {
        continue;
    }
    else
    {
        //do your stuff
    }
}
Nikolino10 wrote:ich hab außerdem

Code: Select all

echo "$categorieArray[0]";
getestet, es tut sich nichts wenn ich auf submit klicke.
Wie genau ist denn dein Code aufgebaut, deine Form lässt ahnen das du an ein externes Script postest und nicht zu nem Joomla Component.
Und wenn du ne Variable per echo ausgibst brauchste keine " drum rum machen, die wären nur nötig wenn da auch noch normaler Text mit drin wäre.

Nikolino10
Joomla! Apprentice
Joomla! Apprentice
Posts: 13
Joined: Wed Dec 26, 2012 11:28 pm

Re: Checkboxen auswerten in Array

Post by Nikolino10 » Tue Jul 15, 2014 5:07 pm

also hab den code mal zusammengefasst. ich lasse Produkte anzeigen, und möchte mit diesen drei checkboxen nur die Produkte anzeigen, die die ausgewählte Kategorie haben. deswegen die if abfrage.
wenn du dich fragst warum nicht gleich mit SQL befehl, das ist nicht möglich.

Die seite soll also dann neu laden (nach klick auf "submit") und nur die Produkte anzeigen wo $produkt_kategorie == $cat

Code: Select all

<form action="default_grid.php" method="post">

Filtern nach: 

   <input type="checkbox" name="c[]" value="Damen" checked="checked"/> Damen  
   <input type="checkbox" name="c[]" value="Herren" checked="checked"/> Herren 
   <input type="checkbox" name="c[]" value="Unisex" checked="checked"/> Unisex  
  
   <input type="submit" value="Anzeigen"/>

</form>

<?php

$categorieArray = JFactory::getApplication()->input->post->get('c', null, 'array');

for ($i=0, $n=count( $this->items ); $i < $n; $i++): //Diese schleife nimmt jedes Element und gibt es dann in form von ProductViews aus
	$row = &$this->items[$i];

# Kategorie aus Datenbank lesen 	

	//produkt_kategorie den namen der Kategorie zuweisen

# Ende Kategorie aus DB lesen

foreach ($categorieArray as $cat)
{
    if ($produkt_kategorie !== $cat)
    {
        continue;
    }
    else
    {
		//ProductView anzeigen
    }
}

endfor;
?>

RedEye
Joomla! Ace
Joomla! Ace
Posts: 1460
Joined: Sat Jan 21, 2006 8:42 pm

Re: Checkboxen auswerten in Array

Post by RedEye » Tue Jul 15, 2014 11:36 pm

post mal bitte im en forum nomma oder in der ml, hab mir vorhin handgelenk gebrochen und wenig lust auf tippen, sry

Nikolino10
Joomla! Apprentice
Joomla! Apprentice
Posts: 13
Joined: Wed Dec 26, 2012 11:28 pm

Re: Checkboxen auswerten in Array

Post by Nikolino10 » Wed Jul 16, 2014 8:13 am

ok trotzdem vielen dank!

Nikolino10
Joomla! Apprentice
Joomla! Apprentice
Posts: 13
Joined: Wed Dec 26, 2012 11:28 pm

Re: Checkboxen auswerten in Array

Post by Nikolino10 » Fri Jul 18, 2014 1:57 pm

in der ml und im en forum antwortet leider niemand.

kann sein, dass bei

Code: Select all

$categorieArray = JFactory::getApplication()->input->post->get('c', null, 'array');
etwas nicht ganz stimmt. Das array ist bei mir leer, hab mal versucht es mit echo auszugeben aber tut sich nix.

edit: oder es ist die form die nichts übergibt

426ci
Joomla! Apprentice
Joomla! Apprentice
Posts: 24
Joined: Fri Feb 13, 2015 7:19 pm

Re: Checkboxen auswerten in Array

Post by 426ci » Fri Feb 20, 2015 2:57 pm

Gib den Checkboxen mal diesen Namen und versuche es noch mal:

name="jform[c][]"


Locked

Return to “Entwicklerforum”