Úvod > Fórum > Internet > Tvorba webu a webdesign > Přidat/odebrat json parametr + umožnit script pro více dat

Přidat/odebrat json parametr + umožnit script pro více dat

26.02.2014 15:34
příspěvků:6

Ahoj,

mám script, který po zaškrtnutí checkboxu dotyčný chbox přesune do jiného divu, získá jeho name a uloží do JSON.

Potřeboval bych tam upravit to, aby při zaškrtnutí chboxu se name do jsonu přidal (to mi funguje) ale také aby se při odškrtnutí daný name z jsonu odebral (to se mi právě nedaří).

Dále bych rád upravil script aby mohl fungovat pro několik vstupních parametrů (přesněji by se měnily data, obj a poté výstupní pchecked).

Když ale změním vstupní a výstupní data, stále tu jsou některé funkce a proměné, které mají stejné jméno a tudíž kolidují.

Tento script budu používat více jak třikrát a budou se měnit pouze (obj, data a pchecked), proto mi přijde nevyhovující kopírovat script a přejmenovávat v něm všechny proměnné atd.

<script>
var data = [

{label: 'name', id: '1'},

{label: 'name2', id: '2'},

{label: 'name3', id: '3'}

]
var obj = {

a: document.getElementById('fprograms'),

b: document.getElementById('chprograms')

};
var pchecked = [];
selected = "";
function check(chbox,obj,data)
{

data[chbox.value*1].check = chbox.checked;

write(obj,data);

selected = chbox.getAttribute("name");

$.ajax({
url: 'result.php',
data: pchecked,
type: "POST",
success: function() {
pchecked.push(selected);

$( "#listresult" ).load('result.php');

},
});
};
function write(obj,data)
{
var i,str;
str = {a:'',b:''};
for (i=0;i<data.length;i++)
{
if (!(data[i].check))

{str.a+='<li><input type=checkbox value =' + i + ' onchange="check(this,obj,data)" name='+data[i].id+'>' + data[i].label + '</li>';}

else {str.b+='<li><input type=checkbox onchange="check(this,obj,data)" name='+data[i].id+' value = '+ i + ' checked="checked">' + data[i].label + '</li>'}

}
obj.a.innerHTML = str.a;
obj.b.innerHTML = str.b;
}
write(obj,data);
</script>

© 2007-2024 PCforum.cz, všechna práva vyhrazena, veškeré informace zde uvedené jsou bez záruk, podmínky užití, kontaktní informace