How to make a dropdown-menu with small image? - php

Details
I want to add a little flag to left of my dropdown menu
I am not sure what is the best practice for that.
Here is what I've tried
<!-- Dropdown-Menu -->
<div class="col-sm-6 drop-down ">
Select Country :
<select id="state" onchange="window.location=this.value" >
<option value="">--Select--</option>
<?php
foreach(array_unique($countries) as $country){ ?>
<option value="#<?php echo $country ; ?> ">
<img
src="/img/flags_3/flags/48/
<?php echo isset( $distributor['hq_country']['name'] ) ? $distributor['hq_country']['name'] : '' ?>.png"
width="16px" height="16px">
<?php echo $country ; ?>
</option>
<?php } ?>
</select>
</div>
her is a link to what I have now

Sorry, but it's not possible to add images inside a <select>
Your best option would be to use a <ul> with <li> elements and build something that function's like a select but built with other elements
something along the lines of
<ul>
<li><img src="your image here" />some test here</li>
<!-- or use css or a font icon for cleaner mark up -->
</ul>
Then bind some mouse events with javascript

Since you already have a containing class around your select, you could do something like this:
HTML:
<div>
<select>
<option>1</option>
<option>2</option>
</select>
</div>
CSS:
select,
option {
width: 200px;}
div:before {
content: '';
display:inline-block;
width: 18px;
height: 18px;
background-image: url('yourImageHere.png');}
http://jsfiddle.net/w1bfvfft/

Take a look at Jquery UI:
http://jqueryui.com/selectmenu/#custom_render
This is what you need :)

Related

Display SVG in dropdown <select> [duplicate]

I have a select list of genders.
Code:
<select>
<option>male</option>
<option>female</option>
<option>others</option>
</select>
I want to use an image in drop down list as drop-down-icon.jpeg.
I want to add a button in place of drop down icon.
How to do that?
In Firefox you can just add background image to option:
<select>
<option style="background-image:url(male.png);">male</option>
<option style="background-image:url(female.png);">female</option>
<option style="background-image:url(others.png);">others</option>
</select>
Better yet, you can separate HTML and CSS like that
HTML
<select id="gender">
<option>male</option>
<option>female</option>
<option>others</option>
</select>
CSS
select#gender option[value="male"] { background-image:url(male.png); }
select#gender option[value="female"] { background-image:url(female.png); }
select#gender option[value="others"] { background-image:url(others.png); }
In other browsers the only way of doing that would be using some JS widget library, like for example jQuery UI, e.g. using Selectable.
From jQuery UI 1.11, Selectmenu widget is available, which is very close to what you want.
With countries, languages or currency you may use emojis.
Works with pretty much every browser/OS that supports the use of emojis.
select {
height: 50px;
line-height: 50px;
font-size: 12pt;
}
<select name="countries">
<option value="NL">🇳🇱 Netherlands</option>
<option value="DE">🇩🇪 Germany</option>
<option value="FR">🇫🇷 France</option>
<option value="ES">🇪🇸 Spain</option>
</select>
<br /><br />
<select name="currency">
<option value="EUR">🇪🇺 € EUR 💶</option>
<option value="GBP">🇬🇧 £ GBP 💷</option>
<option value="USD">🇺🇸 $ USD 💵</option>
<option value="YEN">🇯🇵 ¥ YEN 💴</option>
</select>
You can use iconselect.js; Icon/image select (combobox, dropdown)
Demo and download; http://bug7a.github.io/iconselect.js/
HTML usage;
<div id="my-icon-select"></div>
Javascript usage;
var iconSelect;
window.onload = function(){
iconSelect = new IconSelect("my-icon-select");
var icons = [];
icons.push({'iconFilePath':'images/icons/1.png', 'iconValue':'1'});
icons.push({'iconFilePath':'images/icons/2.png', 'iconValue':'2'});
icons.push({'iconFilePath':'images/icons/3.png', 'iconValue':'3'});
iconSelect.refresh(icons);
};
My solution is to use Font Awesome and then add library icons as text, using the unicode in HTML directly.
You just need the Unicode value for whatever icon you want, and they are all found here: Font Awesome full list of icons, including unicode
Here is an example state filter:
<select name='state' style='height: 45px; font-family:Arial, Font Awesome;'>
<option value=''> All States</option>
<option value='enabled' style='color:green;'> Enabled</option>
<option value='paused' style='color:orange;'> Paused</option>
<option value='archived' style='color:red;'> Archived</option>
</select>
Note the font-family:Arial, FontAwesome; is required to be assigned in style for select like given in the example.
You already have several answers that suggest using JavaScript/jQuery. I am going to add an alternative that only uses HTML and CSS without any JS.
The basic idea is to use a set of radio buttons and labels (that will activate/deactivate the radio buttons), and with CSS control that only the label associated to the selected radio button will be displayed. If you want to allow selecting multiple values, you could achieve it by using checkboxes instead of radio buttons.
Here is an example. The code may be a bit messier (specially compared to the other solutions):
.select-sim {
width:200px;
height:22px;
line-height:22px;
vertical-align:middle;
position:relative;
background:white;
border:1px solid #ccc;
overflow:hidden;
}
.select-sim::after {
content:"▼";
font-size:0.5em;
font-family:arial;
position:absolute;
top:50%;
right:5px;
transform:translate(0, -50%);
}
.select-sim:hover::after {
content:"";
}
.select-sim:hover {
overflow:visible;
}
.select-sim:hover .options .option label {
display:inline-block;
}
.select-sim:hover .options {
background:white;
border:1px solid #ccc;
position:absolute;
top:-1px;
left:-1px;
width:100%;
height:88px;
overflow-y:scroll;
}
.select-sim .options .option {
overflow:hidden;
}
.select-sim:hover .options .option {
height:22px;
overflow:hidden;
}
.select-sim .options .option img {
vertical-align:middle;
}
.select-sim .options .option label {
display:none;
}
.select-sim .options .option input {
width:0;
height:0;
overflow:hidden;
margin:0;
padding:0;
float:left;
display:inline-block;
/* fix specific for Firefox */
position: absolute;
left: -10000px;
}
.select-sim .options .option input:checked + label {
display:block;
width:100%;
}
.select-sim:hover .options .option input + label {
display:block;
}
.select-sim:hover .options .option input:checked + label {
background:#fffff0;
}
<div class="select-sim" id="select-color">
<div class="options">
<div class="option">
<input type="radio" name="color" value="" id="color-" checked />
<label for="color-">
<img src="http://placehold.it/22/ffffff/ffffff" alt="" /> Select an option
</label>
</div>
<div class="option">
<input type="radio" name="color" value="red" id="color-red" />
<label for="color-red">
<img src="http://placehold.it/22/ff0000/ffffff" alt="" /> Red
</label>
</div>
<div class="option">
<input type="radio" name="color" value="green" id="color-green" />
<label for="color-green">
<img src="http://placehold.it/22/00ff00/ffffff" alt="" /> Green
</label>
</div>
<div class="option">
<input type="radio" name="color" value="blue" id="color-blue" />
<label for="color-blue">
<img src="http://placehold.it/22/0000ff/ffffff" alt="" /> Blue
</label>
</div>
<div class="option">
<input type="radio" name="color" value="yellow" id="color-yellow" />
<label for="color-yellow">
<img src="http://placehold.it/22/ffff00/ffffff" alt="" /> Yellow
</label>
</div>
<div class="option">
<input type="radio" name="color" value="pink" id="color-pink" />
<label for="color-pink">
<img src="http://placehold.it/22/ff00ff/ffffff" alt="" /> Pink
</label>
</div>
<div class="option">
<input type="radio" name="color" value="turquoise" id="color-turquoise" />
<label for="color-turquoise">
<img src="http://placehold.it/22/00ffff/ffffff" alt="" /> Turquoise
</label>
</div>
</div>
</div>
Another jQuery cross-browser solution for this problem is http://designwithpc.com/Plugins/ddSlick which is made for exactly this use.
This is using ms-Dropdown : https://github.com/marghoobsuleman/ms-Dropdown
Data resource is json. But you dont need to use json. If you want you can use with css.
Css example : https://github.com/marghoobsuleman/ms-Dropdown/tree/master/examples
Json Example : http://jsfiddle.net/tcibikci/w3rdhj4s/6
HTML
<div id="byjson"></div>
Script
<script>
var jsonData = [
{description:'Choos your payment gateway', value:'', text:'Payment Gateway'},
{image:'https://via.placeholder.com/50', description:'My life. My card...', value:'amex', text:'Amex'},
{image:'https://via.placeholder.com/50', description:'It pays to Discover...', value:'Discover', text:'Discover'},
{image:'https://via.placeholder.com/50', title:'For everything else...', description:'For everything else...', value:'Mastercard', text:'Mastercard'},
{image:'https://via.placeholder.com/50', description:'Sorry not available...', value:'cash', text:'Cash on devlivery', disabled:true},
{image:'https://via.placeholder.com/50', description:'All you need...', value:'Visa', text:'Visa'},
{image:'https://via.placeholder.com/50', description:'Pay and get paid...', value:'Paypal', text:'Paypal'}
];
$("#byjson").msDropDown({byJson:{data:jsonData, name:'payments2'}}).data("dd");
}
</script>
For those wanting to display an icon, and accepting a "black and white" solution, one possibility is using character entities:
<select>
<option>100 €</option>
<option>89 £</option>
</select>
By extension, your icons can be stored in a custom font.
Here's an example using the font FontAwesome: https://jsfiddle.net/14606fv9/2/
https://jsfiddle.net/14606fv9/2/
One benefit is that it doesn't require any Javascript.
However, pay attention that loading the full font doesn't slow down the loading of your page.
Nota bene:
The solution of using a background image doesn't seem working anymore in Firefox (at least in version 57 "Quantum"):
<select>
<option style="background-image:url(euro.png);">100</option>
<option style="background-image:url(pound.png);">89</option>
</select>
For a two color image, you can use Fontello, and import any custom glyph you want to use. Just make your image in Illustrator, save to SVG, and drop it onto the Fontello site, then download your custom font ready to import. No JavaScript!
Alvaros JS free answer was a great start for me, and I really tried to get a truly JS-free answer that still delivered all the functionality expected of a Select with images, but sadly nesting forms was the down-fall. I'm posting two solutions here; my main solution that uses 1 line of JavaScript, and a totally JavaScript-free solution that won't work inside another form, but might be useful for nav menus.
Unfortunately there is a bit of repetition in the code, but when you think about what a Select does it makes sense. When you click on an option it copies that text to the selected area, i.e., clicking 1 of 4 options will not change the 4 options, but the top will now repeat the one you clicked. To do this with images would require JavaScript, orrrr... you duplicate the entries.
In my example we have a list of games (Products), which have versions. Each product may also have Expansions, which can also have versions. For each Product we give the user a list of each version if there's more than one, along with an image and version specific text.
<h4>#Model.Name</h4>
#if (Model.Versions.Count == 1)
{
<div class="rich-select-option-body pl-2">
<img src="#Model.Versions[0].ImageUrl" alt="">#Model.Versions[0].VersionName (#Model.Versions[0].Year)
</div>
}
else
{
<h5>Select the version</h5>
<div class="rich-select custom-select">
<div class="rich-select-dropdown">
#foreach (var version in Model.Versions)
{
<div class="rich-select-option">
<input type="radio" name="game" id="game-#version.ProductId-#version.VersionId" #if (version == Model.Versions.First()) { #Html.Raw(" checked") ; } />
<div class="rich-select-option-body">
<label tabindex="-1">
<img src="#version.ImageUrl" alt="">#version.VersionName (#version.Year)
</label>
</div>
</div>
}
</div>
<input type="checkbox" id="rich-select-dropdown-button" class="rich-select-dropdown-button" />
<label for="rich-select-dropdown-button"></label>
<div class="rich-select-options">
#foreach (var version in Model.Versions)
{
<div class="rich-select-option">
<div class="rich-select-option-body">
<label for="game-#version.ProductId-#version.VersionId" tabindex="-1" onclick="document.getElementById('rich-select-dropdown-button').click();">
<img src="#version.ImageUrl" alt=""> #version.VersionName (#version.Year)
</label>
</div>
</div>
}
</div>
</div>
}
Using JS for the checkbox deselection we can have multiple instances on a form. Here I've extended to show a list of Expansions, which also have the same logic around versions.
<h5 class="mt-3">Include Expansions?</h5>
#foreach (var expansion in Model.Expansions)
{
<div class="form-row">
<div class="custom-control custom-checkbox w-100">
<input type="checkbox" class="expansion-checkbox custom-control-input" id="exp-#expansion.ProductId">
<label class="custom-control-label w-100" for="exp-#expansion.ProductId">
#if (expansion.Versions.Count == 1)
{
<div class="rich-select-option-body pl-2">
<img src="#expansion.ImageUrl" />#expansion.Name: #expansion.Versions[0].VersionName (#expansion.Versions[0].Year)
</div>
}
else
{
<div class="rich-select custom-select">
<div class="rich-select-dropdown">
#foreach (var version in expansion.Versions)
{
<div class="rich-select-option">
<input type="radio" name="exp-#version.ProductId" id="exp-#version.ProductId-#version.VersionId" #if (version == expansion.Versions.First()) { #Html.Raw(" checked") ; } />
<div class="rich-select-option-body">
<label tabindex="-1">
<img src="#version.ImageUrl" alt="">#expansion.Name: #version.VersionName (#version.Year)
</label>
</div>
</div>
}
</div>
<input type="checkbox" id="rich-select-dropdown-button-#expansion.ProductId" class="rich-select-dropdown-button" />
<label for="rich-select-dropdown-button-#expansion.ProductId"></label>
<div class="rich-select-options">
#foreach (var version in expansion.Versions)
{
<div class="rich-select-option">
<div class="rich-select-option-body">
<label for="exp-#version.ProductId-#version.VersionId" tabindex="-1" onclick="document.getElementById('rich-select-dropdown-button-#expansion.ProductId').click();">
<img src="#version.ImageUrl" alt="">#expansion.Name: #version.VersionName (#version.Year)
</label>
</div>
</div>
}
</div>
</div>
}
</label>
</div>
</div>
Of course this requires a fair bit of CSS, which I've only included in this JSFiddle to reduce the size of this already massive answer. I've used Bootstrap 4 to reduce the amount needed, and also to allow it to fit in with other Bootstrap controls and any site customisations that have been made.
The images are set to 75px, but this can easily be changed in 5 lines in .rich-select and .rich-select-option-body img
I propose an alternative
when I'm in a difficult situation like this using dxlookup from devexpress
Examples:https://js.devexpress.com/Demos/WidgetsGallery/Demo/Lookup/Templates/jQuery/Light/
I tried several jquery based custom select with images, but none worked in responsive layouts. Finally i came accross Bootstrap-Select. After some modifications i was able to produce this code.
Code and github repo here
I got the same issue. My solution was a foreach of radio buttons, with the image at the right of it. Since you can only choose a single option at radio, it works (like) a select.
Worked well for me.
I was struggling with the same problem: how to create a language selector with flags. I came up with a :ḧover solution without javascript. It does involve some server-side processing to set a class in the HTML.
The code can be easily generated from PHP or nodejs or Angular/Typescript. In this example there are 3 images contained in an A-element (< a href='./?lang=..."> ).
The trick is that you should fetch the URL GET parameter lang and set the class selected so it will be the only one visible.
The CSS hinges on the fact that there is only one flag visible based on the class selected being present. When the mouse hovers over the container (<div class="languageselect">.....</div>) the CSS will show all flags by overriding the classes div.flag:not(.selected) and div.flag.selected and setting display:block . Then the <a href="..."> will be available to the users.
Of course there is lots of other styling possible to increase useability. This is just a starting point.
Please note the first part of the CSS-line will put the language selector on top on a fixed position. This also helps prevent the flag-container to span a whole line, messing up the :hover detection.
Happy coding!
WOrking example here: codepen
HTML:
<div class="languageselect">
<div class="select">
<div class="flag ">
<a href="./?lang=en">
<img src="https://www.sciencekids.co.nz/images/pictures/flags120/United_Kingdom.jpg">
</a>
</div>
<div class="flag selected">
<a href="./?lang=en_us">
<img src="https://www.sciencekids.co.nz/images/pictures/flags120/United_States.jpg">
</a>
</div>
<div class="flag ">
<a href="./?lang=nl">
<img src="https://www.sciencekids.co.nz/images/pictures/flags96/Netherlands.jpg">
</a>
</div>
</div>
</div>
CSS:
.languageselect {
position: absolute;
top: 0;
left:0;
z-index: 1000;
}
.languageselect img {
max-height: 20px;
}
.languageselect div.flag:not(.selected) {
display: none;
}
.languageselect div.flag.selected {
display: block;
}
.languageselect:hover div.flag {
display:block;
}
UPDATE: As of 2018, this seems to work now. Tested in Chrome, Firefox, IE and Edge
UPDATE: Yes I changed the background-color, not the image, stop voting me down, showing that you can change style here is still a useful contribution.
<!DOCTYPE html>
<html>
<body>
<style>
select#newlocale option[value="volvo"] { background-color: powderblue; }
select#newlocale option[value="opel"] { background-color: red; }
select#newlocale option[value="audi"] { background-color: green; }
</style>
<select id="newlocale">
<option value="volvo"><div >Volvo</div></option>
<option value="saab">Saab</option>
<option value="opel">Opel</option>
<option value="audi">Audi</option>
</select>
</body>
</html>

How to add different size-guide in different product in magento 1.9.2?

How to add different size-guide in different product in magento 1.9.2?
I'm having e-commerce store built by magento. In product we are having a size chart which shows the sizes for men and women in detail.
Create attributes
Attribute Code: 'select_size_guide_table',
Scope : Global,
Catalog Input Type for Store : Dropdown,
Catalog Input Type for Store Owner: Dropdown,
Unique Value: No,
Values Required : No,
Input Validation for Store Owner : None,
Apply To : All type Products,
Use To Create Configurable Product: no,
Use in Quick Search: no,
Use in Quick Search: No,
Use in Advanced Search: No,
Comparable on Front-end:No,
Use In Layered Navigation : No
Use In Search Results Layered Navigation : No,
Use for Promo Rule Conditions: No
Position: 0
Allow HTML Tags on Frontend: YES,
Visible on Product View Page on Front-end: No,
Used in Product Listing: No,
Used for Sorting in Product Listing: No
NEXT
Manage Label / Options
In text Field: Select Size Guide Table
Manage Options
In text field : Women-Bottom-Full
NEXT
Go to Static Blocks -> add New -> Block Title : Size Guide - Women's Bottom Full, ->Identifier : Women-Bottom-Full,->
Add content or images(Which do you want)
NEXT
app\design\frontend\yourtheme\template\catalog\product\view\type\options\configurable.phtml REPLACE Below
<?php
$_product = $this->getProduct();
$_attributes = Mage::helper('core')->decorateArray($this->getAllowAttributes());
?>
<?php if ($_product->isSaleable() && count($_attributes)):?>
<dl>
<?php foreach($_attributes as $_attribute): ?>
<dt><label class="required"><em>*</em><?php echo $_attribute->getLabel() ?></label></dt>
<dd<?php if ($_attribute->decoratedIsLast){?> class="last"<?php }?>>
<div class="input-box">
<select name="super_attribute[<?php echo $_attribute->getAttributeId() ?>]" id="attribute<?php echo $_attribute->getAttributeId() ?>" class="required-entry super-attribute-select">
<option><?php echo $this->__('Choose an Option...') ?></option>
</select>
</div>
</dd>
<?php if(strlen(strstr($_attribute->getLabel(),'Size'))>0) : ?>
<?php
$sizeGuideTableAttribute = $_product->getResource()->getAttribute('select_size_guide_table');
if($sizeGuideTableAttribute):
$sizeGuideTableAttributeValue = $sizeGuideTableAttribute->getFrontend()->getValue($_product);
if ($sizeGuideTableAttributeValue != 'No') :
?>
<a href="#" class="size-guide-link" id="popup" onclick="div_show()">
<img src="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN); ?>frontend/indianink/images/catalog/product/size-chart.jpg" alt="size guide"/>
Size Guide
</a>
<script>
//function to display Popup
function div_show(){
document.getElementById('size_guide').style.display = "block";
}
//function to hide Popup
function div_hide(){
document.getElementById('size_guide').style.display = "none";
}
</script>
<style>
#size_guide{
width: 100%;
height: 100%;
display: none;
position: fixed;
background-color: #313131;
overflow:auto;
top: 0;
left: 0;
z-index: 9999;
overflow: hidden;
}
img#close{
position: absolute;
right: -14px;
top: -14px;
cursor: pointer;
}
div#popupContact{
width: 40%;
margin-left: 29%;
margin-top: 5%;
background: #fff;
}
.validation-passed{float: right;}
.close{float: right;}
</style>
<div id="size_guide" style="display: none;">
<!-- Popup div starts here -->
<div id="popupContact">
<!--<img src="3.png" id="close" onclick="div_hide()">-->
<div class="modal fade" id="size-guide-modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" onclick="div_hide()">X</button>
</div>
<div class="modal-body">
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId($sizeGuideTableAttributeValue)->toHtml(); ?>
</div>
</div>
</div>
</div>
</div>
<!-- Popup div ends here -->
</div>
<?php endif; //$sizeGuideTableAttributeValue
endif; //$sizeGuideTableAttribute
?>
<?php endif; //strlen ?>
<?php endforeach; ?>
</dl>
<script type="text/javascript">
var spConfig = new Product.Config(<?php echo $this->getJsonConfig() ?>);
</script>
<?php endif;?>
The best way is using 3rd party extension because Magento does not have this functionality from the box. I recommend using extension Size Chart from Averun company - https://averun.com/magento-size-chart.html. You will able to add different size-guide to different product or category. The extension contains a few international sets of sizes from the box. Also, your customers will have the recommendation to choosing the correct size.

Best way to layout a list of data across a page

I'm returning database results in PHP using a foreach loop ideally, I would like to lay the result set out in three columns.
<?php
foreach ($departments as $department) { ?>
<br />
<input type="checkbox" name="departments[]"
value="<?php echo $department->id; ?>">
<label><?php echo $department->name; ?></label>
<?php
} ?>
At the moment this simply lists the result set in a single vertical line. What options do I have to span the list across the page? I'm guessing some form of HTML table or CSS? Whats the best way to incorporate that into a PHP foreach loop?
Tables are not really the solution. Since the number of checkboxes are not constant, you cannot have a fixed table structure without using javascript overhead to align them properly. Lists might be a good solution.
Even better solution is to use divs with float: left
<?php foreach($departments as $department) { ?>
<div class="width-4">
<input type="checkbox" name="departments[]" value="<?php echo $department->id; ?>" />
<span><?php echo $department->name; ?></span>
</div>
<?php } ?>
<div style="clear: both"></div>
Here, width-4 is the div that helps align your checkboxes. CSS is given below.
.width-4 {
width: 25%;
float: left;
}
Be careful if you are adding padding, margin or border to/inside width-4. In that case, you need to use another container div inside width-4 and add padding, border or margin to it.
Advantage of this layout is that after 4 checkboxes, subsequent checkboxes automatically move to next line. These can be easily styled by styling width-4.
List or a table would do. For a table use
<table>
<tr>
<?php foreach ($departments as $department): ?>
<td>
<input type="checkbox" name="departments[]" value="<?php echo $department->id; ?>">
<label><?php echo $department->name; ?></label>
</td>
<?php endforeach; ?>
</tr>
</table>
Just make a list :)
HTML
<ul class="departments">
<?php foreach ($departments as $department) { ?>
<li>
<input type="checkbox" name="departments[]" value="<?php echo $department->id; ?>">
<label><?php echo $department->name; ?></label>
</li>
<?php } ?>
</ul>
CSS
ul.departments li {
display: inline-block;
}
See example here : http://jsfiddle.net/7a88w1vb/

button in header menu php

i created a header.php for my web site.
For my menu, i created 5 buttons.
When i press on a button it redirect me on the page associated to it.
Until now everything fine.
What i want is, on the current page, my button of the page associated to it change to an other color or background image.
I dont know if we can do that and if i explain myself well.
here my header.php
<div id="main_menu">
<div id="menu_blog"><button onclick="location.href='blog.html'"><h1>Trucs/Astuces</h1></button></div>
<div id="menu_contact"><button onclick="location.href='/contact.php'"><h1>Contact</h1></button></div>
<div id="menu_soumission"><button onclick="location.href='/soumission.php'"><h1>Soumission</h1></button></div>
<div id="menu_realisation"><button onclick="location.href='/realisations.php'">
<h1>Réalisations</h1></button></div>
<div id="menu_service"><button onclick="location.href='/services.php'">
<h1>Services</h1></button></div>
<div id="menu_a_propos"><button onclick="location.href='/a_propos.php'"><h1>L'entreprise</h1></button></div>
</div>
Simple way is use CSS
#yourbutton:hover{
background-color: red;
}
or
#yourbutton:active{
background-color: red;
}
Pass a GET value with each link
<div id="menu_contact"><button onclick="location.href='/contact.php?active=1'"><h1>Contact</h1></button></div>
check the value of active in the button
< button <?php if ($_GET['active']==1) echo 'class="active"'; ?> ..../>
then make a css style for active class
.active{
/*your style here*/
}
Your PHP page:
<div id="main_menu">
<div id="menu_blog">
<button onclick="location.href='/blog.html'" <?php if($_SERVER['REQUEST_URI'] == '/blog.html'){echo 'class="currentPage"'; }?>>
<h1>Trucs/Astuces</h1>
</button>
</div>
… and so on for each menu item ...
</div>
Your CSS:
button.currentPage{
background-color: red;
}
Short version:
add $current_location to every page and name it after it
<?php
$current_location = "a_propos" ;
?>
Check if location is correct, then change background color
<div id="main_menu">
<div id="menu_a_propos"><button <?php if ($current_location == "a_propos");?> style=" background-color: red;"<?php };?> onclick="location.href='/a_propos.php'"><h1>L'entreprise</h1></button></div>
</div>

When click on particular link show div at that position else hide others in jquery

In this page i have done table listing and each tr have two link are :-
1) Adult and 2) Child
When Click on particular link(for Adult or child) show the div at that position and all other position's div are hide. if next or any other link is click then hide previous link div.
I want to show the hidden div(as i given the hidden properties in div) at when click on particular link
------------Here are the HTML :: ------------
<td>
<div class="tab-inner">
<p><span><strong>Space : <?php echo $row->space; ?></strong></span>
</p>
<p>Adult $<?php echo $row->adultPrice; ?>
<!-- <div id="SpanAdultAllot"></div>-->
</p>
<div style="display:none;" class="adult-wrapper">
<div class="adult-box">
<div class="adultborder">
<div id="adultallot" class="adult-msg">Adult Allocation</div> <span class="adult-select-no"></span>
</div><span class="adultarrow"></span>
<label id="adult" class="adultselect">Adult :</label>
<select class="selectorbox" id="adultselect" name="adult">
<option value="">--</option>
<?php for($i=1; $i<=$row->space; $i++) { ?>
<option value="<?php if($i==$row->space) echo " selected='selected' "; ?>">
<?php echo $i;?>
</option>
<?php } ?>
</select> <strong></strong>
</div>
</div>
<?php if($row->childPrice
<>'0'){ ?>
<p>Child $<?php echo $row->childPrice; ?>
</p>
<!--<div id="SpanChildAllot"></div>-->
<?php } ?>
</div>
</td>
----------Here JS code::-----------
$('a[name="allocation"]').live("click", function () {
$(this).parent().next('.adult-wrapper').show();
$('.adult-select-no').live("click", function () {
$(this).closest('.tab-inner').find('.adult-wrapper').hide();
});
});
Add / include jquery-1.9.0.min.js file.
Create one div to show:
<div id="details_link" style="">
Show Link
</div>
Create another div to hide:
<div id="details_div" style="display:none;">Test show and hide div
Hide Link
</div>
Some tips for avoiding errors when using different browsers:
Don't write Javascript code in the href attribute, always put it in onclick.
To hide div, write in its style display:none or block.
Don't use visibility=hidden.

Categories