How to display multi-value checkbox comma seperated or CSS

4 posts by 2 authors in: Forums > CMS Builder
Last Post: August 9, 2014   (RSS)

By andybarn - July 24, 2014

I have a Real Estate Website

Please can you tell me how to display items from a multi-value checkbox correctly;

In cmsAdmin, I use a field called 'features' set as multi-value checkbox and let's say someone checks the list of items like this:

[x] item 1
[x] item 2
[ ] item 3
[ ] item 4
[ ] item 5
[x] item 6
[ ] item 7
[x] item 8

In listingDetail.php I put in

<?php echo $listing['features'] ?>

and it would display the results like this:

item 1 item 2 item 6 item 8

I have two questions,

  1.  What would I put in listingDetail.php if I want to display them like this (comma separated):

    item 1, item 2, item 6, item 8

  2.  Ideally I would like to use CSS which displays icons, copy of the html on how I would want it to look after it had been processed below:-

<span class="features">               
<span class="color-green"><i class="fa fa-check-square-o"></i></span>item 1 
<span class="color-green"><i class="fa fa-check-square-o"></i></span>item 2 
<span class="color-green"><i class="fa fa-check-square-o"></i></span>item 6
<span class="color-green"><i class="fa fa-check-square-o"></i></span>item 8
</span>


What code would I put in listingDetail.php if I want to display the items like the above?

More Information:

At the top of my listingDetail.php file I have the following code:-

<?php
  /* STEP 1: LOAD RECORDS - Copy this PHP code block to the TOP of your page BEFORE anything else. */
  require_once "init.php";

  list($listingRecords, $listingDetails) = getRecords(array(
    'tableName'   => 'listings',
    'joinTable'   => 'homepages',
    'where'       => whereRecordNumberInUrl(1),
    'limit'       => '1',
  ));
  $listing = @$listingRecords[0];


  if (!$listing) { print "Listing not found!"; exit; }

?>

 
I have spent hours on this so any help appreciated.

Thanks
Andy

By gregThomas - July 25, 2014

Hi Andy,

If you're using the getRecords function to retrieve the record, it will come with an array of all of the selected labels for that field. You could loop through it like this:

<?php $lastIndex = count($listing['features:labels']) - 1; ?>

<?php foreach($listing['features:labels'] as $key => $label): ?>
  <?php echo $label; ?><?php if($key != $lastIndex): ?>, <?php endif; ?>
<?php endforeach; ?>

So the above code loops through the labels array, it will then display each items label, and add a comma at the end if we're not dealing with the last item.

You just need to amend the above code to work with the HTML in your previous post.

Let me know if you have any questions.

Thanks!

Greg

Greg Thomas







PHP Programmer - interactivetools.com

By andybarn - August 9, 2014

Hi Greg

Just a quick update.

I was finding my code a bit limiting, so reverted back to your code which was far more flexible.

Your code worked straight away and with a little modification,  I managed to achieve exactly what I wanted.

Thanks very much again for your help.

Kind Regards

Andy