Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [js] problem z klasa, pierwszy obiekt w zyciu w js
Balon
post
Post #1





Grupa: Zarejestrowani
Postów: 422
Pomógł: 0
Dołączył: 14.12.2005
Skąd: Wałbrzych

Ostrzeżenie: (0%)
-----


Kod
function Auth()
{
    var url = 'lib/ajax_request.php';
    var params = 'action=login&login=' + $F( 'form_login' ) + '&pass=' + $F( 'form_pass' );
    
    function login()
    {
        var ajax = new Ajax.Request( this.url, { parameters: this.params, onLoading: msgBox( 'SHOW', 'Loading...' ), onSuccess: msgBox( 'Logged...' ), onFauilure: reportError} );
        switch( ajax.responseText )
        {
            case 'OK': this.msgBox( 'SHOW', 'Logged ...' ); this.pause( 1000 ); this.msgBox( 'HIDE', '' ); break
                
        }
    }
    
    function msgBox( type, msg )
    {
        $F( 'msg_box' ).innerHTML = msg;
        switch( type )
        {
            case 'HIDE': $F( 'msg_box' ).style.display = 'none'; break
            case 'SHOW': $F( 'msg_box' ).style.display = 'block'; break
        }
    }
    
    function pause( ms )
    {
        var now = new Date();
        var exitTime = now.getTime() + ms;
    
        while( true )
        {
            now = new Date();
            if( now.getTime() > exitTime ) return;
        }
    }
}


a wywoluje to tak

  1. <form action="login/" method="post" onsubmit="var auth = new Auth(); auth.login(); return false;">


wywala i przekierowuje mnie na login/ i blad bo to tylko dla picu jest to login/ bo ma wykonywac ten formularz ajax
Cytat
Błąd: Auth is not defined
Plik źródłowy: http://127.0.0.1/~book/
Wiersz: 1


co robie zle ?

wiem ze jestem zielony ale jakos trza zaczynac winksmiley.jpg


--------------------
Postura wielka i morda wredna, jestem Balon, kozak z osiedla !
bzdury.pl - Królestwo rozrywki
Go to the top of the page
+Quote Post
siemakuba
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

Ostrzeżenie: (0%)
-----


1. definicja metod i właściwości dla obiektu Auth:
Kod
// zamiast

var url = 'lib/ajax_request.php';
function login() {}

// dajesz

this.url = 'lib/ajax_request.php';
this.login = function() {}


2. Wywołanie
a) możesz zainicjować obiekt na początku, zaraz po jego definicji:
Kod
var auth = new Auth;

b) możesz zrobić też tak:
  1. <form action="login/" method="post" onsubmit="(new Auth).login(); return false;">


P.S. nie moge teraz zatestować, więc daj znaka czy OK :)
pozdr.
Go to the top of the page
+Quote Post
Balon
post
Post #3





Grupa: Zarejestrowani
Postów: 422
Pomógł: 0
Dołączył: 14.12.2005
Skąd: Wałbrzych

Ostrzeżenie: (0%)
-----


Kod
/**
* This file is part of G-system.
* @copyright 2006 All rights reserved, do not copy, edit or resale.
* @author Krzysztof Jagiełło <balonyo@gmail.com>
* @version 0.1
*/

function Auth()
{
    this.url = 'lib/ajax_request.php';
    this.params = 'action=login&login=' + $F( 'form_login' ) + '&pass=' + $F( 'form_pass' );
    
    this.login = function login()
    {
        var ajax = new Ajax.Request( this.url, { parameters: this.params, onLoading: msgBox( 'SHOW', 'Loading...' ), onSuccess: msgBox( 'Logged...' ), onFauilure: reportError} );
        switch( ajax.responseText )
        {
            case 'OK': this.msgBox( 'SHOW', 'Logged ...' ); this.pause( 1000 ); this.msgBox( 'HIDE', '' ); break
            case 'ERROR': this.msgBox( 'SHOW', 'Error ...' ); this.pause( 1000 ); this.msgBox( 'HIDE', '' ); break
        }
    }
    
    this.msgBox = function msgBox( type, msg )
    {
        $F( 'msg_box' ).innerHTML = msg;
        switch( type )
        {
            case 'HIDE': $F( 'msg_box' ).style.display = 'none'; break
            case 'SHOW': $F( 'msg_box' ).style.display = 'block'; break
        }
    }
    
    this.pause = function pause( ms )
    {
        var now = new Date();
        var exitTime = now.getTime() + ms;
    
        while( true )
        {
            now = new Date();
            if( now.getTime() > exitTime ) return;
        }
    }
}

var auth = new Auth;


nadal nie dziala....


jak mozesz to przetestuj bo nie wiem co jest grane winksmiley.jpg


--------------------
Postura wielka i morda wredna, jestem Balon, kozak z osiedla !
bzdury.pl - Królestwo rozrywki
Go to the top of the page
+Quote Post
siemakuba
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

Ostrzeżenie: (0%)
-----


hej, a czym objawia się niedziałanie? FireFox -> Narzędzia -> Konsola JavaScript -- najpierw otwórz, wyczyść listę błędów i odśwież stronę. Co pokazuje?

jedno na pewno:

nie tak:
Kod
this.login = function login()

tylko tak:
Kod
this.login = function()


Postaram się sprawdzić jeszcze zaraz, ale naprawdę nie wiem czy dam radę...

edit:
zrobiłem mały test, większego nie mogłem bo nie mam reszty potrzebnych bibliotek (Ajax).

Po zmianach o których napisałem powyżej i wywołaniu auth.login() mam komunikat o braku obiektu AJAX. Obiekt Auth więc jest popranie zbudowany. Jak możesz napisz co pokazuje konsola.
Na mnie niestety możesz liczyć tylko dziś - jutro przywitam się z Tatrami i tak do końca przyszłego tygodnia ;)

pozdr.

Ten post edytował siemakuba 28.07.2006, 07:34:19
Go to the top of the page
+Quote Post
Balon
post
Post #5





Grupa: Zarejestrowani
Postów: 422
Pomógł: 0
Dołączył: 14.12.2005
Skąd: Wałbrzych

Ostrzeżenie: (0%)
-----


no wywala

Kod
Błąd: Auth.login is not a function
Plik źródłowy: http://127.0.0.1/~book/#
Wiersz: 1


i przy wchodzeniu na strone

Kod
Błąd: element has no properties
Plik źródłowy: http://127.0.0.1/~book/lib/saculo/prototype.js
Wiersz: 1506


poprawiony skrypt

Kod
/**
* This file is part of G-system.
* @copyright 2006 All rights reserved, do not copy, edit or resale.
* @author Krzysztof Jagiełło <balonyo@gmail.com>
* @version 0.1
*/

function Auth()
{
    this.url = 'lib/ajax_request.php';
    this.params = 'action=login&login=' + $F( 'form_login' ) + '&pass=' + $F( 'form_pass' );
    
    this.login = function()
    {
        var ajax = new Ajax.Request( this.url, { parameters: this.params, onLoading: msgBox( 'SHOW', 'Loading...' ), onSuccess: msgBox( 'Logged...' ), onFauilure: reportError} );
        switch( ajax.responseText )
        {
            case 'OK': this.msgBox( 'SHOW', 'Logged ...' ); this.pause( 1000 ); this.msgBox( 'HIDE', '' ); break
            case 'ERROR': this.msgBox( 'SHOW', 'Error ...' ); this.pause( 1000 ); this.msgBox( 'HIDE', '' ); break
        }
    }
    
    this.msgBox = function( type, msg )
    {
        $F( 'msg_box' ).innerHTML = msg;
        switch( type )
        {
            case 'HIDE': $F( 'msg_box' ).style.display = 'none'; break
            case 'SHOW': $F( 'msg_box' ).style.display = 'block'; break
        }
    }
    
    this.pause = function( ms )
    {
        var now = new Date();
        var exitTime = now.getTime() + ms;
    
        while( true )
        {
            now = new Date();
            if( now.getTime() > exitTime ) return;
        }
    }
}

var Auth = new Auth;


wywolanie przykladowe

  1. <input type="submit" value="Login" class="submit" onclick="Auth.login(); return false;"/>


przenosi mnie na strone z bledem...


--------------------
Postura wielka i morda wredna, jestem Balon, kozak z osiedla !
bzdury.pl - Królestwo rozrywki
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 22:03