Uma forma de guardar informações no html para serem repassadas ao PHP, ou para serem manipulados por javascript é guardar informações como atributos HTML, utilizando o prefixo “data-“. Este tipo de marcação de atributos foi incluído no HTML5. Não que antes não existisse, você poderia utilizar qualquer atributo em tags HTML antes, mas este código não tinha a semântica correta, não era validado pelo W3C por exemplo. Pra simplificar, vamos aos exemplos:
Imagine uma lista com clientes, que ao clicar em editar, precisasse carregar um ajax passando algumas informações do mesmo. Eu precisava guardar os atributos concatenados e utilizar a função split do javascript pra separar depois:

<h2>Clientes:</h2>
<ul>
<li>ALberto Santos<a id="28|cliente_master|29 anos">Editar</a></li>
<li>Pedro Camargo<a id="29|cliente_master|39 anos">Editar</a></li>
<li>Maria Souza<a id="30|cliente_comum|22 anos">Editar</a></li>
<li>Milena Figueiredo<a id="31|cliente_master|57 anos">Editar</a></li>
</ul>
 

no Javascript:

$('ul li a').click(function(){
	var info = $(this).attr('id').split('|');
	var id = info[0];
	var tipo = info[1];
	var idade = info[2];
	//metodo post do jquery, realiza um post para o php via ajax
	$.post('url_do_post',{'id': id, 'tipo':tipo, 'idade':idade}, function(resposta){
		//realizo algo com a resposta do post
		alert(resposta);
	})
})

Com o novo tipo de marcação, com os atributos data ficaria assim:

<h2>Clientes:</h2>
<ul>
<li>ALberto Santos<a data-id="28" data-tipo="cliente_master" data-idade="29 anos">Editar</a></li>
<li>Pedro Camargo<a data-id="29" data-tipo="cliente_master" data-idade="39 anos">Editar</a></li>
<li>Maria Souza<a data-id="30" data-tipo="cliente_comum" data-idade="22 anos">Editar</a></li>
<li>Milena Figueiredo<a data-id="31" data-tipo="cliente_master" data-idade="57 anos">Editar</a></li>
</ul>

E o javascript:

$('ul li a').click(function(){	
	var id = $(this).attr('data-id');
	var tipo = $(this).attr('data-tipo');
	var idade = $(this).attr('data-idade');
	//metodo post do jquery, realiza um post para o php via ajax
	$.post('url_do_post',{'id': id, 'tipo':tipo, 'idade':idade}, function(resposta){
		//realizo algo com a resposta do post
		alert(resposta);
	})
})

Assim o código fica mais organizado e com a semântica correta, podendo guardar dados no html e manipulá-los com javascript sem o risco de concatenar strings, já que poderia ter uma String com o símbolo “pipe – |” e quebrar todo o código. Além de tudo isso, o atributo pode servir para estilizar o css também, utilizando seletores de atributos. (Comentei sobre isso neste post: CSS seletores de atributos)
Exemplo:

a[data-tipo="cliente_master"]{color:blue;}

Espero que tenham gostado e até a próxima.

Este conteúdo foi útil para você? Então ajude este blog a continuar no ar com novos conteúdos!
Basta clicar em algum anúncio da header ou sidebar e aguardar pelo menos 10 segundos