|
Autor
|
Beitrag
|
Abgemeldet
25.08.10 - 14:14:32 Uhr
|
Hallo,
mit folgenden ajax script werden für die joomla komponente sobi2 subkategorien geladen wenn man auf ein plus klickt. ich habe dies nun in jomsocial eingebaut und es gibt probleme. merkwürdig ist, dass das script zweimal verwendet wird. im einen interface (profil bearbeiten) funktioniert es und wenn man beim registrieren das script benutzt gibt er folgenden fehler: There was a problem with the request.
<script type="text/javascript">
- <!--
- /* <![CDATA[ */
- var stmcid = 0;
- var smtLastNode = 37;
- var smtImgs = new Array();
- var smtImgMatrix = new Array();
- var smtParents = new Array();
- var smtSemaphor = 0;
-
- smtImgs['root'] = 'http://yousquid.com/components/com_sobi2/images/base.gif';
- smtImgs['join'] = 'http://yousquid.com/components/com_sobi2/images/join.gif';
- smtImgs['joinBottom'] = 'http://yousquid.com/components/com_sobi2/images/joinbottom.gif';
- smtImgs['plus'] = 'http://yousquid.com/components/com_sobi2/images/plus.gif';
- smtImgs['plusBottom'] = 'http://yousquid.com/components/com_sobi2/images/plusbottom.gif';
- smtImgs['minus'] = 'http://yousquid.com/components/com_sobi2/images/minus.gif';
- smtImgs['minusBottom'] = 'http://yousquid.com/components/com_sobi2/images/minusbottom.gif';
- smtImgs['folder'] = 'http://yousquid.com/components/com_sobi2/images/folder.gif';
- smtImgs['folderOpen'] = 'http://yousquid.com/components/com_sobi2/images/folderopen.gif';
- smtImgs['line'] = 'http://yousquid.com/components/com_sobi2/images/line.gif';
- smtImgs['empty'] = 'http://yousquid.com/components/com_sobi2/images/empty.gif';
-
- smtImgMatrix[3] = new Array('plus');
- smtImgMatrix[4] = new Array('plus');
- smtImgMatrix[5] = new Array('plus');
- smtImgMatrix[6] = new Array('plus');
- smtImgMatrix[7] = new Array('plus');
- smtImgMatrix[8] = new Array('plus');
- smtImgMatrix[9] = new Array('plus');
- smtImgMatrix[10] = new Array('plus');
- smtImgMatrix[11] = new Array('plus');
- smtImgMatrix[12] = new Array('plus');
- smtImgMatrix[13] = new Array('plus');
- smtImgMatrix[14] = new Array('plus');
- smtImgMatrix[15] = new Array('plus');
- smtImgMatrix[16] = new Array('plus');
- smtImgMatrix[17] = new Array('plus');
- smtImgMatrix[18] = new Array('plus');
- smtImgMatrix[19] = new Array('plus');
- smtImgMatrix[20] = new Array('plus');
- smtImgMatrix[21] = new Array('plus');
- smtImgMatrix[22] = new Array('plus');
- smtImgMatrix[23] = new Array('plus');
- smtImgMatrix[24] = new Array('plus');
- smtImgMatrix[25] = new Array('plus');
- smtImgMatrix[26] = new Array('plus');
- smtImgMatrix[27] = new Array('plus');
- smtImgMatrix[28] = new Array('plus');
- smtImgMatrix[29] = new Array('plus');
- smtImgMatrix[30] = new Array('plus');
- smtImgMatrix[31] = new Array('plus');
- smtImgMatrix[32] = new Array('plus');
- smtImgMatrix[33] = new Array('plus');
- smtImgMatrix[34] = new Array('plus');
- smtImgMatrix[35] = new Array('plus');
- smtImgMatrix[36] = new Array('plus');
- smtImgMatrix[37] = new Array('plusBottom');
-
- function stmExpand(catid, deep) {
- stmcid = catid;
- url = "index2.php?option=com_sobi2&catid=" + stmcid + "&no_html=1&sobi2Task=SigsiuTreeForm";
- stmMakeRequest(url,deep,catid)
- }
- function in_array (needle, haystack, argStrict) {
- var key = '', strict = !!argStrict;
- if (strict) {
- for (key in haystack) {
- if (haystack[key] === needle) {
- return true; }
- }
- } else {
- for (key in haystack) {
- if (haystack[key] == needle) { return true;
- }
- }
- }
- return false;
- }
- function addClicked(name,input) {
- // etwas ausgewähltes aus dem Zwischenspeicher entfernen
- if(document.getElementById(input).checked == false) {
- //alert("Entferne Element:\nListe: "+document.getElementById('clicked').value+"\nWort: "+"#" + name.replace("&", "&"));
- document.getElementById('selCat').value = document.getElementById('selCat').value.replace(name.replace("&", "&") + "#", "");
- } else {
- document.getElementById('selCat').value = document.getElementById('selCat').value + name.replace("&", "&") + "#";
- }
- }
- function stmAddSubcats(XMLDoc,deep,ccatid) {
- var categories = XMLDoc.getElementsByTagName('category');
- var subcats = "";
- deep++;
- for(i = 0; i < categories.length; i++) {
- var category = categories[i];
- var catid = category.getElementsByTagName('catid').item(0).firstChild.data;
- var name = category.getElementsByTagName('name').item(0).firstChild.data;
- var introtext = category.getElementsByTagName('introtext').item(0).firstChild.data;
- var parentid = category.getElementsByTagName('parentid').item(0).firstChild.data;
- var url = category.getElementsByTagName('url').item(0).firstChild.data;
- var childs = category.getElementsByTagName('childs').item(0).firstChild.data;
- var join = "<img src='"+smtImgs['join']+"' alt=''>";
- var childContainer = "";
- var margin = "";
- name = name.replace("\", "");
- introtext = introtext.replace("\", "");
- url = url.replace("\\", "");
- for(j = 0; j < deep; j++) {
- if(smtImgMatrix[parentid][j]) {
- switch(smtImgMatrix[parentid][j]) {
- case 'empty':
- case 'plusBottom':
- case 'minusBottom':
- image = 'empty';
- break;
- case 'plus':
- case 'minus':
- case 'line':
- image = 'line';
- break
- }
- }
- else {
- image = 'empty';
- }
- if(!smtImgMatrix[catid]) {
- catArray = new Array();
- catArray[j] = image;
- smtImgMatrix[catid] = catArray;
- }
- else {
- smtImgMatrix[catid][j] = image;
- }
- margin = margin + "<img src='"+ smtImgs[image] +"' style='border-style:none;' alt=''/>";
- }
- if(childs == 1) {
- join = "<a href='javascript:stmExpand(" + catid + ", " + deep + ");' id='sobi2CatsForm_imgUrlExpand" + catid + "'><img src='"+ smtImgs['plus'] + "' id='sobi2CatsForm_imgExpand" + catid + "' style='border-style:none;' alt='expand'/></a>";
- smtImgMatrix[catid][j] = 'plus';
- }
- if(stmcid == smtLastNode) {
- line = "<img src='"+smtImgs['empty']+"' alt=''>";
- }
- if(i == categories.length - 1) {
- if(childs == 1) {
- join = "<a href='javascript:stmExpand(" + catid + ", " + deep + ");' id='sobi2CatsForm_imgUrlExpand" + catid + "'><img src='"+ smtImgs['plusBottom'] + "' id='sobi2CatsForm_imgExpand" + catid + "' style='border-style:none;' alt='expand'/></a>";
- smtImgMatrix[catid][j] = 'plusBottom';
- }
- else {
- join = "<img src='"+smtImgs['joinBottom']+"' style='border-style:none;' alt=''/>";
- smtImgMatrix[catid][j] = 'joinBottom';
- }
- }
- alert("yessjo");
- selCat = document.getElementById('selCat').value;
- selCat = selCat.split("#");
- zwCat = document.getElementById('clicked').value;
- zwCat = zwCat.split("#");
-
- if(in_array( name, selCat ) || in_array( name, zwCat )) {
- selected = ' checked="checked"';
- } else {
- selected = '';
- }
-
- subcats = subcats + "<div class='sigsiuTreeNode' style=\"margin-bottom:5px;\">" + margin + join + "<img src='"+smtImgs['folder']+"' id='sobi2CatsForm_imgFolder" + catid + "' alt='' style=\"margin-right:3px;\"> <label class=\"lblradio-block\"><input type=\"checkbox\" name=\"field16[]\" value=\"" + name + "\"" + selected + " class=\"checkbox required validate-custom-checkbox\" style=\"position:relative;top:2px;\" onclick=\"addClicked('" + name + "','sobi2CatsForm_input" + catid + "');\" id='sobi2CatsForm_input" + catid + "' /> " + name + "</label></div>";
- if(childs == 1) {
- subcats = subcats + "<div class='clip' id='sobi2CatsForm_childsContainer" + catid + "' style='display: block; display:none;'></div>"
- }
- }
- var childsCont = "sobi2CatsForm_childsContainer" + ccatid;
- document.getElementById(childsCont).innerHTML = subcats;
- }
- function stmMakeRequest(url,deep,catid) {
- var stmHttpRequest;
- if (window.XMLHttpRequest) {
- stmHttpRequest = new XMLHttpRequest();
- if (stmHttpRequest.overrideMimeType) {
- stmHttpRequest.overrideMimeType('text/xml');
- }
- }
- else if (window.ActiveXObject) {
- try { stmHttpRequest = new ActiveXObject("Msxml2.XMLHTTP"); }
- catch (e) {
- try { stmHttpRequest = new ActiveXObject("Microsoft.XMLHTTP"); }
- catch (e) {}
- }
- }
- if (!stmHttpRequest) {
- alert('Sorry but I Cannot create an XMLHTTP instance');
- return false;
- }
- stmHttpRequest.onreadystatechange = function() { stmGetSubcats(stmHttpRequest,deep,catid); };
- stmHttpRequest.open('GET', url, true);
- stmHttpRequest.send(null);
- }
- function stmGetSubcats(stmHttpRequest,deep,catid) {
- if (stmHttpRequest.readyState == 4) {
- if (stmHttpRequest.status != 200) {
- document.getElementById("sobi2CatsForm_imgFolder"+catid).src = smtImgs['folderOpen'];
- if(stmcid == smtLastNode) {
- document.getElementById("sobi2CatsForm_imgExpand"+catid).src = smtImgs['minusBottom'];
- }
- else if(document.getElementById("sobi2CatsForm_imgExpand"+catid).src == smtImgs['plusBottom']){
- document.getElementById("sobi2CatsForm_imgExpand"+catid).src = smtImgs['minusBottom'];
- }
- else {
- document.getElementById("sobi2CatsForm_imgExpand"+catid).src = smtImgs['minus'];
- }
- document.getElementById("sobi2CatsForm_imgUrlExpand"+catid).href = "javascript:stmColapse(" + catid + ", " + deep + ");";
- document.getElementById("sobi2CatsForm_childsContainer" + catid).style.display = "";
- stmAddSubcats(stmHttpRequest.responseXML,deep,catid);
- }
- else {
- alert('There was a problem with the request.');
- }
- }
- }
- function stmColapse(id, deep) {
- document.getElementById("sobi2CatsForm_childsContainer" + id).style.display = "none";
- document.getElementById("sobi2CatsForm_imgFolder"+id).src = smtImgs['folder'];
- if(id == smtLastNode) {
- document.getElementById("sobi2CatsForm_imgExpand"+id).src = smtImgs['plusBottom'];
- }
- else if(document.getElementById("sobi2CatsForm_imgExpand"+stmcid).src == smtImgs['minusBottom']){
- document.getElementById("sobi2CatsForm_imgExpand"+stmcid).src = smtImgs['plusBottom'];
- }
- else {
- document.getElementById("sobi2CatsForm_imgExpand"+id).src = smtImgs['plus'];
- }
- document.getElementById("sobi2CatsForm_imgUrlExpand"+id).href = "javascript:stmExpand(" + id + ", " + deep + ");";
- }
- /* ]]> */
- // -->
- </script>
-
Kann mir jemand helfen und mir sagen, woher der fehler kommt und wie ich ihn wo möglich beseitigen kann.
vielen dank schonma für eure mühen
liebe grüße
|
SammysHP
25.08.10 - 15:15:50 Uhr
|
Was ist "sobi2"? Was sagt die Fehlerkonsole? Was sagt Firebug? An welcher Stelle bleibt der Request hängen? Hast du eine Beispielseite?
_________________
www.sammyshp.de
|
Abgemeldet
25.08.10 - 16:19:55 Uhr
|
Hallo Sammy,
also Fehlerkonsole gibt kein Fehler. Was ich herausgefunden habe ist, dass der Request nie den Status 200 bekommt, deswegen schlägt die if abfrage in zeile 96 false an. Aus irgendeinen grund gehts auf der einen seite (profil beabreiten) und beim registrieren nicht. was ist nötig damit der status des request 200 gibt?
lg
[EDIT] omg jetzt kommt der fehler genau auf der anderen seite, was aber anders ist weiß ich net
|
SammysHP
25.08.10 - 16:44:17 Uhr
|
Wie sieht denn der Request aus und wie die Antwort (inkl. Header bitte)?
_________________
www.sammyshp.de
|
Michi
25.08.10 - 17:45:41 Uhr
|
Mit 'nem Link wäre das Ausprobieren einfacher...
Tipp:
Mit der Firefox-Erweiterung TamperData kann man relativ einfach Request abfangen, (optional) manipulieren und vor allem die Antwort vom Server inkl. aller Response-Header direkt einsehen. Das hilft beim Debuggen ziemlich, vor allem siehst du, welcher Statuscode vom Server kommt, und welchen Inhalt er schickt.
(Falls du diese Infos nicht sowieso schon hattest...)
Link:
https://addons.mozilla.org/de/firefox/addon/966/
|
SammysHP
25.08.10 - 19:30:32 Uhr
|
Das scheint ein Fork eines Teils von Firebug bzw. andersrum zu sein. Die reine Analyse ist in Firebug ja auch drin.
_________________
www.sammyshp.de
|
Abgemeldet
01.09.10 - 11:53:41 Uhr
|
vielen dank für eure hilfe.
ich habe mit firebug mal den request angeschaut und festgestellt, dass es zu einem xml fehler kommt:
XML-Verarbeitungsfehler: Kein Element gefunden Adresse: moz-nullprincipal: {e7d08eba-394e-4822-b0dc-a37d71017011) Zeile Nr. 1, Spalte 1: ^
merkwürdig finde ich auch, dass es auf vista firefox 3.6.8 geht aber nicht auf xp mit dem gleichen firefox. ich habe auch schonmal versucht alle add ons auszuschalten, kein erfolg.
jemand eine idee?
|
SammysHP
01.09.10 - 12:20:54 Uhr
|
Solange du uns keinen Link dazu gibst: Nein.
_________________
www.sammyshp.de
|
Abgemeldet
01.09.10 - 15:08:21 Uhr
|
so, das problem wurde jetzt gelöst
der fehler lag im script am stmHttpRequest.status der ergab bei manchen browsern 0
dieses problem hat schon vielen probleme gemacht doch es gibt eine einfache und simple lösung:
[Quelle: http://www.ajax-community.de/javascript/8376-problem-xmlhttprequest-status-0-a.html]
Wenn die Seite unter example.de - Ankndigung Ausstellung Oktoberfest Mnchen aufgerufen wurde war die Url "http://example.de" für Firefox nicht Teil der Subdomain www und wurde damit aus Sicherheitsgründen geblockt.
also musste ich im request nur ein www. vorschreiben und das problem war behoben. sollte man die registrierung nun das ganze ohne www. in der urlleiste machen gibts wieder ein fehler. am besten also mit javascript url bestimmen.
vielen dank hiernochma an sammyhp
mfg
|