Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Проверка поля и риконект (https://javascript.ru/forum/misc/20842-proverka-polya-i-rikonekt.html)

Sadist_dead 19.08.2011 15:17

Проверка поля и риконект
 
Подскажите пожалуйста не могу понять

Идет запрос авторизации в php. PHP возвращает
<script type="text/javascript">
$(function f(){
$("#wer").click(function(){
	var a = $("#login").val();
	var b = $("#password").val();
$.ajax({
	type: "POST",
	url: "http://localhost/webschool/login.php",
	data: ({a:a,b:b}),
	dataType: 'json',
	beforesend: alert("Отправляемые данные  a=" +a+ "b="+b), 
	success: function(data){
          
$.each(data, function(index,a){
for(var i in a ) {     
$("#Id_p").append(a[i]);	 
}; // закрытие for
         //  alert("Номер : "+ index+"\n\n Язык : "+ a[i]);		 
}); // закрытие $.each(data, function(index,a){   
}, // закрытие success: function(data){
});
});
});
</script>


PHP Возвращает на "Вы успешно авторизированны" или "Извините, но данные не верны!"


Ответ приходит в див
<div id="Id_p"></div>

вопрос: как сделать так чтобы если ответ правильный происходил риконект на другую страницу

я думал сделать так но у меня не работает посмотри пожалуйста что не так

<script language="JavaScript"> 
 if ((document.getElementById("Id_p").this)==='Вы успешно авторизированны'){
  window.location.href = "index_user.php"
 }

  
</script>

может я вообще не туда двигаюсь

walik 19.08.2011 15:33

Цитата:

Сообщение от Sadist_dead
document.getElementById("Id_p").this

:blink:

мб так:
document.getElementById("Id_p").innerHTML

Geddar 19.08.2011 15:34

анализируй сам ответ, добавь параметр в ответ, так проще, например
ok%%Вы успешно авторизированны
разбивай через .split('%%'), если ок, то location.href='куда_пойдём'
я так всегда делаю, меня устраивает

Sadist_dead 19.08.2011 15:40

Цитата:

Сообщение от walik (Сообщение 121354)
:blink:

мб так:
document.getElementById("Id_p").innerHTML

<script language="JavaScript"> 
 if ((document.getElementById("Id_p").innerHTML)==='Вы успешно авторизированны'){
  window.location.href = "index_user.php"
 }

  
</script>


не хочет, мне кажется что вообще может по другому...как-то

скажите пожалуйста может в чем преимущество javascrip в случае случае авторизации ведь можно принципе сделать все в php и проверку данных и сразу риконект.
и не надо будет ничего ни откуда вытаскивать

Geddar 19.08.2011 15:44

страница не перезагружается, так как бы современней.
Попробуй == вместо ===
Хотя я настаиваю на вышепредложенном мной варианте )

ksa 19.08.2011 15:44

Цитата:

Сообщение от Sadist_dead
ведь можно принципе сделать все в php

Тогда почему вопрос в разделе "Общие вопросы Javascript"? :)

Sadist_dead 19.08.2011 15:56

Цитата:

Сообщение от Geddar (Сообщение 121356)
анализируй сам ответ, добавь параметр в ответ, так проще, например
ok%%Вы успешно авторизированны
разбивай через .split('%%'), если ок, то location.href='куда_пойдём'
я так всегда делаю, меня устраивает



<script language="JavaScript">
 
 var qwerty = document.getElementById("Id_p").innerHTML;
 if (qwerty==='ok'){alert("работает")}

  
</script>


Передаю из php просто ок
проверял переменную qwerty получила ок но alert("работает") не пашет

Sadist_dead 19.08.2011 15:58

Цитата:

Сообщение от ksa (Сообщение 121362)
Тогда почему вопрос в разделе "Общие вопросы Javascript"? :)

Сделать то можно , но это будет не интересно, тем более что уж раз взялся хочу понять хотя бы. Потом разберусь что лучше....

Sadist_dead 19.08.2011 16:01

Цитата:

Сообщение от Geddar (Сообщение 121361)
страница не перезагружается, так как бы современней.
Попробуй == вместо ===
Хотя я настаиваю на вышепредложенном мной варианте )

неа ровным счетом ничего

Geddar 19.08.2011 16:03

.....
success: function(data){  //data="ok%%Вы успешно авторизированны"
    a=data.split('%%');
    if(a[0]=='ok'){
        alert(a[1]);
        location.href='/адрес';
    }else{
        alert("Ошибка авторизации");
    }
}

Обычно я делаю иначе передаю err%%[проблема авторизации]
т.к. проблемы бывают разные, особенно при регистрации, а положительный результ чаще всего один )

З.Ы. проверяй переданные/полученные данные, а не содержимое тега. Тем более если пропарсить документ, то встретиться ещё объекс #text, на подобное я в висивинге наталкивался

З.Ы.Ы. если всё равно не заработет, ставьте firebug в FF, стрекозу в опере или консоль в хроме открывайте и ищите косяки, т.к. из-за какой-то грубой ошибки у вас весь код не работает ...


Часовой пояс GMT +3, время: 16:28.