у меня есть несколько функций - логин, пост коммента и выход, мм вообще они скорее с ajax больше связанны но суть не в серверной части как раз а в js.
Когда я логинюсь, например, я могу добавить коммент, но выйти не получается, функция просто не вызывается (тестил alert и логом). Но если страницу обновить (я уже буду залогинен), могу и коменты добавлять и выйти, но после этого залогинеться не могу опять, теперь функция логина не вызывается. Короче функция логина каким то образом мешает функции выхода. Чем это может быть вызванно? что может быть причиной?
Спустя 1 минута, 24 секунды (14.08.2012 - 14:38) Игорь_Vasinsky написал(а):
Цитата |
Чем это может быть вызванно? |
ты же знаешь - вот
Цитата |
функции блокируют друг друга |
Спустя 3 минуты, 7 секунд (14.08.2012 - 14:41) sergeiss написал(а):
flinth - ты думаешь, тут много телепатов, способный дистанционно просканировать твой код и дать ответ?
Показывай код. Только не длинную "портянку", а ту часть, которая проблемная.
Показывай код. Только не длинную "портянку", а ту часть, которая проблемная.
Спустя 6 минут, 51 секунда (14.08.2012 - 14:48) flinth написал(а):
если б я знал где проблемная часть справился сам =/ я вообще про теоретическую часть вопроса спрашивал, например при завершении функции не хватает где-то return или что-то в этом роде.
function log_out(){
if(name && user_id){
var checkStr = "id="+user_id+"&name="+name;
var xmlHttpReq = false;
var self = this;
if (window.XMLHttpRequest) {
self.xmlHttpReq = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}
self.xmlHttpReq.open('POST', './handler.php', true);
self.xmlHttpReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
self.xmlHttpReq.onreadystatechange = function() {
if (self.xmlHttpReq.readyState == 4 && self.xmlHttpReq.status == 200) {
if(self.xmlHttpReq.responseText ==1){
user_id = '';
name = '';
return;
}
}
}
self.xmlHttpReq.send(checkStr);
}
else
return;
}
Спустя 4 минуты, 18 секунд (14.08.2012 - 14:52) Игорь_Vasinsky написал(а):
а тут нечего нет стандартная функция для работы с ajax
в консоле ошибки есть?
в консоле ошибки есть?
Спустя 2 минуты, 3 секунды (14.08.2012 - 14:54) flinth написал(а):
в консоле нет, дак вот в том то и дело что ошибок тоже я не нашел выложу логин, но он длиннее
function login(){
var error = false;
var email = document.getElementById('login_email').value;
var password = document.getElementById('login_pass').value;
if(!error){
var checkStr = "email="+email+"&password="+password;
var xmlHttpReq = false;
var self = this;
if (window.XMLHttpRequest) {
self.xmlHttpReq = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
self.xmlHttpReq = new ActiveXObject(\"Microsoft.XMLHTTP\");
}
self.xmlHttpReq.open('POST', './handler.php', true);
self.xmlHttpReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
self.xmlHttpReq.onreadystatechange = function() {
if (self.xmlHttpReq.readyState == 4 && self.xmlHttpReq.status == 200) {
if(self.xmlHttpReq.responseText ==1 ){
error = true;
return;
}
else{
var pattern_id = /([0-9]+)/;
var id = pattern_id.exec(self.xmlHttpReq.responseText);
var pattern_user = /name=([A-ZА-Яа-яa-z0-9_-]+)/;
var user = pattern_user.exec(self.xmlHttpReq.responseText);
user_id = id[1];
name = user[1];
document.getElementById('name').innerHTML = name+'<span class=\"sep\">|</span> <a href="javascript:log_out()">Выход</a>';
document.getElementById('name').style.display = 'block';
add_comment();
return;
}
}
}
self.xmlHttpReq.send(checkStr);
}
else
return;
}
Спустя 4 минуты, 58 секунд (14.08.2012 - 14:59) flinth написал(а):
знаете кажется решил проблему =/
когда код постил заметил,
когда код постил заметил,
document.getElementById('name').innerHTML = name+'<span class=\"sep\">|</span> <a href="javascript:log_out()">Выход</a>';у функции вызова log_out скобок не было я добавил пока постил сюда. Думаю в этом трабл был. черт=/ я думал посерьезней что-то)
document.getElementById('name').style.display = 'block';
Спустя 2 минуты, 12 секунд (14.08.2012 - 15:01) Игорь_Vasinsky написал(а):
она самая