Atribuire clasa la div cu id criptat base64

Discutii si intrebari legate de scripturi si functii JavaScript, jQuery si Ajax, cod JavaScript in general.
Stefan
Mesaje: 117

Atribuire clasa la div cu id criptat base64

Salut, cum pot atribui o variabila ca fiind clasa unui div? Am urmatorul cod

Cod: Selectaţi tot

	function seteaza(fid){
			$.ajax({
				url: "ajax/premiera.php",
				type: "POST",
				data: {id: fid},
				dataType: "json",
				error: function(xhr, status, error) {
                    alert(status);
                    alert(xhr.responseText);
                },
				success: function(x) {
					if(x.stare)
						$(x.id).attr('class', 'btn btn-warning');
					else
						$(x.id).attr('class', 'btn btn-danger');
				}
			});
		}
Returmeaza id-ul criptat cu base64 (EX: #MQ==), deci sub forma de caractere si primesc eroarea

Cod: Selectaţi tot

Uncaught Error: Syntax error, unrecognized expression: #MQ==  ...

MarPlo Mesaje: 4343
Salut,
Care este div-ul la care vrei sa adaugi class?
Ce contine rezultatul primit prin ajax de la server (in codul tau acel parametru "x"), e un obiect cu parametru "id"? verifica in acea functie si vezi in consola, cu:

Cod: Selectaţi tot

console.log(x);

Stefan Mesaje: 117
Pai x returnează date în JSON, x.stare returnează starea unui element din baza de date (0,1) iar x.id returnează id ul criptat cu Base64 (#MQ==)

MarPlo Mesaje: 4343
Daca vrei sa decodezi in javascript sirul criptat cu base64, foloseste functia atob().

Cod: Selectaţi tot

var str = window.atob('enoded_base64_string');
In codul tau:

Cod: Selectaţi tot

function(x){
  let id = window.atob(x.id);
  if(x.stare) $(id).attr('class', 'btn btn-warning');
  else $(id).attr('class', 'btn btn-danger');
}
- Functia btob() se foloseste pt. criptare base64.