combining a text only and text size function with php

Posted on 2006-11-27
Last Modified: 2011-09-20

I have two things working and want to combine them

firstly a text only on/off switcher which I am going to use to import the stylesheets

$text_only = isset($_GET['text_only']) ? $_GET['text_only'] : 1;

 if ($text_only==1) {
<a href="<?php echo $_SERVER['PHP_SELF'];?>?text_only=0">off</a>
// import css here
else {
<a href="<?php echo $_SERVER['PHP_SELF'];?>?text_only=1">on</a></span>
// import css here

secondly the text size links

<a href="<? $_SERVER['PHP_SELF'];  ?>?text_size=medium" class="size1" id="one">A</a>
<a href="<? $_SERVER['PHP_SELF']; ?>?text_size=larger" class="size2" id="two">A</a>
<a href="<? $_SERVER['PHP_SELF']; ?>?text_size=largest" class="size3" id="three">A</a>

$text_size = isset( $_REQUEST['text_size'] ) ? $_REQUEST['text_size'] : '';

switch ($text_size) {
case "medium":
<link href="css/medium.css" rel="stylesheet" type="text/css" />
case "larger":
<link href="css/larger.css" rel="stylesheet" type="text/css" />
case "largest":
<link href="css/largest.css" rel="stylesheet" type="text/css" />

these work great independently but when I use one the other switches off. any ideas how I can combine them?

Question by:roscoeh23
  • 2

Accepted Solution

Autogard earned 500 total points
ID: 18023308
The key is to pass both values in the URL.  To do that you just append your parameters with a "&":

To get this to happen, just do something like this:

<a href="<? $_SERVER['PHP_SELF'];  ?>?text_size=medium&text_only=<?php echo $_GET['text_only']; ?>" class="size1" id="one">A</a>

This is assuming that they first went to the page and selected text-only, and then when the page reloaded they can then select which size of text they want.  You will need to incorporate this code with some condition checking to see if $_GET['text_only'] is set, etc...

Author Comment

ID: 18026519
it needs to remember what values are set and then keep them from page to page. I suspect a cookie or session is required and also a way of combining the values.

my css for the divs are simple they just have stuff like

div {



for the text only I am just shutting off all css except the font-size ones.


Assisted Solution

Autogard earned 500 total points
ID: 18028522

One way to do it is through sessions, yes.  Another way is just to keep passing it from page to page.  Sessions is probably the better idea, though.

If you want to use sessions you can do something like:

# Start your session

# Check if a new value is passed in
$_SESSION['text_only'] = isset($_GET['text_only']) ? $_GET['text_only'] : 1;

# Now do your css stuff based on what the $_SESSION['text_only'] value is set at

Then you do the same kind of thing on the text_size.  Basically, as long as the person has their browser open the $_SESSION values will hold, until you change them of course.

Take a look at for more info on sessions.

As for cookies, you could probably use them, but from what I understand they are more for keeping their choices from session to session.

Featured Post

Threat Intelligence Starter Resources

Integrating threat intelligence can be challenging, and not all companies are ready. These resources can help you build awareness and prepare for defense.

Join & Write a Comment

Does the idea of dealing with bits scare or confuse you? Does it seem like a waste of time in an age where we all have terabytes of storage? If so, you're missing out on one of the core tools in every professional programmer's toolbox. Learn how to …
A short article about problems I had with the new location API and permissions in Marshmallow
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …
In this fifth video of the Xpdf series, we discuss and demonstrate the PDFdetach utility, which is able to list and, more importantly, extract attachments that are embedded in PDF files. It does this via a command line interface, making it suitable …

708 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now