3 ajax "loader", amik nem mennek
Sziasztok,
készítettem egy olyan tartalom kezelőt, ahol egy és ugyan az a fájl végzi megfelelő konfiguráció mellett az adatok feltöltését, a megfelelő korrektúrázását / jóváhagyását, és utólagos módosítását (függően attól, hogy melyik request_url-től jön a kérés), és azt egészet próbáltam úgy létrehozni, hogy minden tartalom elemét egy-egy külső fájl csinálja meg, amiket szépen egy ajax_loaderrel hívok meg.
Ebből három fajtát csináltam, egy ami egyszerűen betölti a megfelelő divbe a kért fájl tartalmát - egyet, amihez lehet adni két paramétert, amit elküld, és egyet, ahol egy komplett formot dolgoz fel, és az összes elemét átadja a behívandó fájlnak. Valamiért viszont nem hallgatnak rám a dolgok - és még a javascript nem az erősségem, ezért kérném a segítségetek!
■ készítettem egy olyan tartalom kezelőt, ahol egy és ugyan az a fájl végzi megfelelő konfiguráció mellett az adatok feltöltését, a megfelelő korrektúrázását / jóváhagyását, és utólagos módosítását (függően attól, hogy melyik request_url-től jön a kérés), és azt egészet próbáltam úgy létrehozni, hogy minden tartalom elemét egy-egy külső fájl csinálja meg, amiket szépen egy ajax_loaderrel hívok meg.
Ebből három fajtát csináltam, egy ami egyszerűen betölti a megfelelő divbe a kért fájl tartalmát - egyet, amihez lehet adni két paramétert, amit elküld, és egyet, ahol egy komplett formot dolgoz fel, és az összes elemét átadja a behívandó fájlnak. Valamiért viszont nem hallgatnak rám a dolgok - és még a javascript nem az erősségem, ezért kérném a segítségetek!
function ajax_content_loader(div_id, datatype)
{
var url = 'url/admin/moduls/00_content_editor/ajax/'+datatype+'.php';
var pars = 'ajax=911012';
var myAjax = new Ajax.Updater
(
{success: div_id},
url,
{
method: 'post',
parameters: pars,
onCreate: function(){
$('ajax_in_work').show();
},
onComplete: function(){
$('ajax_in_work').hide();
},
}
);
}
function ajax_content_loader2(div_id, datatype, value)
{
var url = 'url/admin/moduls/00_content_editor/ajax/'+datatype+'.php';
var pars = 'ajax=911012&cnv_value='+value;
var myAjax = new Ajax.Updater
(
{success: div_id},
url,
{
method: 'post',
parameters: pars,
onCreate: function(){
$('ajax_in_work').show();
},
onComplete: function(){
$('ajax_in_work').hide();
},
}
);
}
<!-- a masodik valo arra, hogy az ellenorzo filet, a saver funkciot, a kepkeres harmadik lepeset es a kukat illetve az elonezetet meghivja. -->
<!-- ez alapvetoen annyit tesz, hogy a megadott formot a megadott filenak elpostolja, a cid, ctype, userid tarsasagaban. -->
function ajax_saver(content_id, content_type, user_id, div_id, datatype, form)
{
var url = 'url/admin/moduls/00_content_editor/ajax/'+datatype+'.php';
var pars = 'content_id='+content_id+'&content_type='+content_type+'&user_id='+user_id+'&ajax=911012';
for (i=0;i<document.forms[+'"'+form+'"'+].length;i++)
{
pars = pars + '&' + document.forms[+'"'+form+'"'+].elements[+'"'+i+'"'+].name + '=' + document.forms[+'"'+form+'"'+].elements[+'"'+i+'"'+].value;
}
var myAjax = new Ajax.Updater
(
{success: div_id},
url,
{
method: 'post',
parameters: pars,
onCreate: function(){
$('ajax_in_work').show();
},
onComplete: function(){
$('ajax_in_work').hide();
},
}
);
}
<!-- window opener include -->
</script>
{
var url = 'url/admin/moduls/00_content_editor/ajax/'+datatype+'.php';
var pars = 'ajax=911012';
var myAjax = new Ajax.Updater
(
{success: div_id},
url,
{
method: 'post',
parameters: pars,
onCreate: function(){
$('ajax_in_work').show();
},
onComplete: function(){
$('ajax_in_work').hide();
},
}
);
}
function ajax_content_loader2(div_id, datatype, value)
{
var url = 'url/admin/moduls/00_content_editor/ajax/'+datatype+'.php';
var pars = 'ajax=911012&cnv_value='+value;
var myAjax = new Ajax.Updater
(
{success: div_id},
url,
{
method: 'post',
parameters: pars,
onCreate: function(){
$('ajax_in_work').show();
},
onComplete: function(){
$('ajax_in_work').hide();
},
}
);
}
<!-- a masodik valo arra, hogy az ellenorzo filet, a saver funkciot, a kepkeres harmadik lepeset es a kukat illetve az elonezetet meghivja. -->
<!-- ez alapvetoen annyit tesz, hogy a megadott formot a megadott filenak elpostolja, a cid, ctype, userid tarsasagaban. -->
function ajax_saver(content_id, content_type, user_id, div_id, datatype, form)
{
var url = 'url/admin/moduls/00_content_editor/ajax/'+datatype+'.php';
var pars = 'content_id='+content_id+'&content_type='+content_type+'&user_id='+user_id+'&ajax=911012';
for (i=0;i<document.forms[+'"'+form+'"'+].length;i++)
{
pars = pars + '&' + document.forms[+'"'+form+'"'+].elements[+'"'+i+'"'+].name + '=' + document.forms[+'"'+form+'"'+].elements[+'"'+i+'"'+].value;
}
var myAjax = new Ajax.Updater
(
{success: div_id},
url,
{
method: 'post',
parameters: pars,
onCreate: function(){
$('ajax_in_work').show();
},
onComplete: function(){
$('ajax_in_work').hide();
},
}
);
}
<!-- window opener include -->
</script>
Hol akadtál el?
formázva volt + haladás
formázva volt, tabulátorokkal, amit szerintem szépen kiírtott, mikor bemászoltam ide.
Amivel még gondom van, minden egyéb megoldódott:
{
pars = pars + '&' + document.forms[+'"'+form+'"'+].elements[+'"'+i+'"'+].name + '=' + document.forms[+'"'+form+'"'+].elements[+'"'+i+'"'+].value;
}
Alapvetően ennek a pár sornak a lényege, hogy a form nevű változóban leírt form minden mezőjét, ill annak tartalmát hozzáfűzze a pars nevű változóhoz.
A cél, hogy a teljes formot elküldjem az ajax.updeter-ben a célfájlnak, ami ezeket elmenti, dolgozik vele, vagy bármi egyéb.
Kokrétan ez a forma, ami nem működik helyesen:
- document.forms[+'"'+form+'"'+].length
- próbáltam: document.forms[+form+].length
- vagy épp: document.forms.form.length
- és document.forms['"'+form+'"'].length
- de mindhiába.
Ugyan ez az elements[+'"'+i+'"'+].name és az elements[+'"'+i+'"'+].value - nél.
a meghívás, ez talán segít
ahol a negyedik mondja meg, hogy mi a div neve, az otodik pedig a megnyitando file nevet, az utolso pedig a form neve, amit postolni szeretnék teljes tartalmával.
felesleges elemek
megpróbáltam, de
syntax error
[Break on this error] pars = pars + '&' + document.forms[form].elements<i>.name + '=' + document.f...
Firefox2.x alatt néztem meg.
debug
Nem tudsz valami tesztoldalt összedobni, ahol rá tudunk nézni?