5 códigos de jQuery para tu tienda online

Ya sabéis que jQuery es una librería de Javascript muy popular que se utilizada en muchas aplicaciones web, como por ejemplo, en el archiconocido CMS, WordPress. Con jQuery, escribimos menos código, codificar funciones es menos complejo y cuenta con un montón de plugins que puedes utilizar sin gastarte ni un duro, en tu aplicación. Los snippets de jQuery que vas a ver a continuación son un buen ejemplo de cómo desarrollar una funcionalidad dinámica y rápida para tu sitio web (o e-commerce).

Sin más dilación, vamos a ver esos snippets tan prácticos:

Completar un select a partir de la selección de otro

Una de las funciones más potentes de jQuery es Ajax. Este ejemplo muestra cómo completar un segundo select en base a la selección designada por el usuario de un primer select. Esta característica puede serte muy útil en la página del detalle del producto.

Por ejemplo, tenemos este select con diversas categorías (colores):

<form>
	<label for="category">Choose color: </label>
	<select id="category" name="category">
		<option value="green">Green</option>
		<option value="blue">Blue</option>
		<option value="red">Red</option>
	</select>
	<span id="subcat"></span>
</form>

Si alguien cambia el color en este select, el formulario mostrará las tallas disponibles dentro del elemento SPAN con el ID “subcat”. Para hacer esto, utiliza este snippet de jQuery que realiza una petición AJAX a un fichero PHP llamado “getSubCat.php”. Cuando se haga una selección en el select, se mostrará una imagen de “cargando” (en caso de conexiones a Internet lentas), se llamará al PHP y el sub select de las tallas aparecerá visible.

$(document).ready(function() {
	$('#category').change(function() {
		var category = $(this).val();
		$.ajax({
			type: 'GET',
			url: 'getSubCat.php',
			data: 'category=' + category,
			dataType: 'html',
			beforeSend: function() {
				$('#subcat').html('<img src="loader.gif" alt="loading..." />');
			},
			success: function(response) {
				$('#subcat').html(response);
			}
		});
	});
});

Crea un fichero PHP con el nombre getSubCat.php y copia/pega el siguiente código:

<?php
$data = array(
	'green' => array('S', 'M', 'L', 'XL', 'XXL'),
	'blue' => array('L', 'XXL'),
	'red' => array('M', 'L', 'XL', 'XXL')
);
// Normally you receive this data from the database
if (!empty($_GET['category'])) {
	if (array_key_exists($_GET['category'], $data)) {
		echo '
	<select id="subselect" name="'.$_GET['category'].'">';
		foreach ($data[$_GET['category']] as $key => $val) {
			echo '
		<option value="'.$key.'">'.$val.'</option>';
		}
		echo '
	</select>';
	} else {
		echo 'Array-key doesn't exist';
	}
} else {
	echo 'Invalid request';
}

Activa/Desactiva el botón submit de un formulario

En dichas páginas con un formulario de registro o con formularios en el pago del pedido, lo suyo es hacer que el usuario o visitante acepte los términos y condiciones de tu web antes de que envíe el formulario, ¿verdad? Una función muy simple realiza todo esto, es decir, deshabiluta el botón de submit hasta que el visitante hace clic en un campo checkbox (como el de aceptar los términos y condiciones). El siguiente snippet activará/desactivará el botón submit si el elemento checkbox está marcado o no.

$('#accept').click(function() {
	if ($('#buybtn').is(':disabled')) {
    	$('#buybtn').removeAttr('disabled');
    } else {
    	$('#buybtn').attr('disabled', 'disabled');
    }
});

Una vez que tenemos esta función, utilizamos este código HTML para el botón submit.

<input id="accept" name="accept" type="checkbox" value="y" /> I accept the conditions!
<input id="buybtn" disabled="disabled" name="Submit" type="submit" value="Send" />

Galería de fotos con miniaturas

Si buscas una función para crear una galería de imágenes liviana, este snippet de jQuery es para ti. El funcionamiento de la función es muy simple: si el visitante hace clic en una miniatura, el valor del atributo href pasa a ser el del atributo src de la imagen grande. Eso es todo, échale un vistazo al código jQuery y por supuesto, también al código HTML.

$('#thumbs a').click( function() {
	var changeSrc = $(this).attr('href');
	$('#detail').attr('src', changeSrc);
	return false;
});
<div class="container">
	<img id="detail" src="img/1.jpg" alt="bigger view" />
</div>
<div class="thumbs"> 
	<a href="img/1.jpg"><img src="thumbs/1.jpg" alt="thumb 1" /></a>
	<a href="img/2.jpg"><img src="thumbs/2.jpg" alt="thumb 2" /></a>
	<a href="img/3.jpg"><img src="thumbs/3.jpg" alt="thumb 3" /></a>
</div>

Esconder/mostrar elementos basándose en una selección

jQuery cuenta con funciones excelentes para mostrar y esconder elementos HTML. En este ejemplo vemos cómo mostrar una lista de tipos de tarjetas de crédito cuando el cliente marca la casilla (radio button) “creaditcar”. Este script comprueba que el radio button ha sido seleccionado y, si es así, muestra el select, y si no, no muestra nada.

$('#payments input[type=radio]').click(function() {
	if ($(this).val() == 'creditcard') {
		$('#cards').show();
	} else {
		$('#cards').hide();
	}
});

El snippet HTML cuenta con un grupo de radio buttons dentro de un contenedor DIV que se hace visible cuando el radio con el valor “creditcar” es pulsado.

<ul id="payments">
	<li>
		<input id="creditcard" name="payment" type="radio" value="creditcard" /> Creditcard
		<div id="cards">
			<label for="cctype">Choose one: </label>
				<select id="cctype" name="cctype">
				<option>...</option>
				<option value="master">MasterCard</option>
				<option value="visa">Visa</option>
				<option value="amex">American Express</option>
			</select>
		</div>
	</li>
	<li>
		<input name="payment" type="radio" value="paypal" /> PayPal
	</li>
	<li>
		<input name="payment" type="radio" value="wire" /> Wire/transfer
	</li>
</ul>

Contar clics para Google Analytics

El último snippet es una forma sencilla de contar clics de los enlaces que están dentro de un contenedor DIV específico. Sin necesidad de añadir el código de Google Analytics a todos los enlaces, es posible contar esos links en Google Analytics.

$('#mylinks a[href^="http"]').click(function(){
 	pageTracker._trackPageview('/outgoing/'+ $(this).attr('href'));
});

Esta pequeña función contará los links dentro de un contenedor DIV con el id “mylinks” tal que así:

<div id="mylinks">
	<a href="http://google.com">Google</a> | 
	<a href="http://www.programacion.net">Programacion.net</a>
</div>

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP