Skocz do zawartości

[ajax] Logowanie


Mar

Rekomendowane odpowiedzi

Sorki, że tak późno, ale mam sporo pracy ostatnio a i od kompa chce odpocząć czasem :) ale do rzeczy...

ok teraz chyba rozumiem.

na szybkiego napisałem coś takiego:

function popup(ID)
{
new Ajax.Request('/formularz.php'+,
{
	parameters: { id: ID },  
	onSuccess: function(transport)
	{
		showForm(transport.responseText);
	},
	onFailure: function()
	{
			alert("Bląd w połączeniu z serwerem!");
	}
});
}

function showForm(BODY)
{
Dialog.confirm(BODY, { className:"alphacube", width:400, okLabel: "ok", cancelLabel: "cancel", onOk:function(win)
{
	new Ajax.Request('/submitForm.php',
	{
		parameters: { parametr1: $F('parametr1'), parametr2: $F('parametr2') },  
		onSuccess: function(transport)
		{
			// tutaj co się dzieję jak się powiedzie zatwierdzenie formularza i zapisanie zmian
			// np zamknięcie popupa
			Windows.focusedWindow.close();
		},
		onFailure: function()
		{
				alert("Bląd w połączeniu z serwerem!");
		}
	});
}});
}

Nie przetestowane więc może nie działać prawidłowo. Ale o taką ideę chyba chodzi. Najpierw zgłaszasz żądanie AJAX-em o formularz, który później otwierasz w popup Dialog.confirm nie wiem jak on się będzie zachowywał w zależności od wielkości formularza nie używałem tego nigdy.

Pozdrawiam

Michał

Odnośnik do komentarza
Udostępnij na innych stronach

Jest jakiś duży błąd, i nie mogę go zlokalizować, powyższy kod blokuje inne funkcje i a konsola błędów wyświetla,

iż funkcja nie jest zdefiniowana.

Mar.

Polecam katalog SeoPark.pl, katalog AK47 (5 lata w sieci) ...oraz Wirtualne-miasta.eu
"Dopóki nie skorzystałem z Internetu, nie wiedziałem, że na świecie jest tylu idiotów" - Stanisław Lem

Odnośnik do komentarza
Udostępnij na innych stronach

A widzę mały błąd coś mi się źle skopiowało. Popraw

new Ajax.Request('/formularz.php'+,

na

new Ajax.Request('/formularz.php?id='+ID,

powinno pomóc, słynne powiedzenie programistów "u mnie działa" !!! hehe

Ewentualnie jak będzie wywalało błąd "Bląd w połączeniu z serwerem!" to usuń / z adresu czyli:

new Ajax.Request('formularz.php?id='+ID,

EDYTA:

gdzie plik formularz.php będzie Ci zwracał jakiś formularz :blink: przetestowałem to tak, że mi ściągało ten formularz do logowania.

Odnośnik do komentarza
Udostępnij na innych stronach

No teraz działa tak jak należy, ale mam jeszcze jedno pytanie odnośnie tego:

Pierwsze co rzuciło mi się w oczy to to, że zamiast pola input dałeś textarea i wykrzacza się pewnie na tym

KOD

tresc: $F('tresc')

ta składnia pobiera wartość z inputów tylko a dla textarea wypróbuj coś takiego

..co odpowiada za pole radio?

Mar.

Polecam katalog SeoPark.pl, katalog AK47 (5 lata w sieci) ...oraz Wirtualne-miasta.eu
"Dopóki nie skorzystałem z Internetu, nie wiedziałem, że na świecie jest tylu idiotów" - Stanisław Lem

Odnośnik do komentarza
Udostępnij na innych stronach

Przykładowy HTML:

<form action="" method="post" id="formRadio">
<input type="radio" value="radioValue1" name="radioName" checked='true' />
<input type="radio" value="radioValue2" name="radioName" />
<input type="radio" value="radioValue3" name="radioName" />
</form>

kod JS do odczytu zaznaczonego radio buttona:

var radioButton = $('formRadio')['radioName'];
for (var i = 0; i < radioButton.length; i++) 
{
if (radioButton[i].checked)
{
	alert(radioButton[i].value);
	break;
}
}

Innej metody nie znam !!!

Odnośnik do komentarza
Udostępnij na innych stronach

Ale jak to zastosować do powyższego przykładu, próbowałem to wstawić przed linijkę:

new Ajax.Request('/submitForm.php',

, ale nie działa, zwraca, że obiekt radio jest pusty.

Mar.

Polecam katalog SeoPark.pl, katalog AK47 (5 lata w sieci) ...oraz Wirtualne-miasta.eu
"Dopóki nie skorzystałem z Internetu, nie wiedziałem, że na świecie jest tylu idiotów" - Stanisław Lem

Odnośnik do komentarza
Udostępnij na innych stronach

Np. coś takiego:

function getSelectedRadio()
{
var radioButton = $('formRadio')['radioName'];
for (var i = 0; i < radioButton.length; i++)
  {
	if (radioButton[i].checked)
	{
		return radioButton[i].value;
	}
}
}

function showForm(BODY)
{
Dialog.confirm(BODY, { className:"alphacube", width:400, okLabel: "ok", cancelLabel: "cancel", onOk:function(win)
{
	var selectedRadio = getSelectedRadio();

	new Ajax.Request('/submitForm.php',
	{
		parameters: { parametr1: selectedRadio, parametr2: $F('parametr2') },  
		onSuccess: function(transport)
		{
			// tutaj co się dzieję jak się powiedzie zatwierdzenie formularza i zapisanie zmian
			// np zamknięcie popupa
			Windows.focusedWindow.close();
		},
		onFailure: function()
		{
				alert("Bląd w połączeniu z serwerem!");
		}
	});
}});
}

Powinno działać ;)

Odnośnik do komentarza
Udostępnij na innych stronach

Kurcze, wreszcie koniec... teraz działa wszystko tak jak chciałem.

Dziękuję za pomoc.

Mar.

Polecam katalog SeoPark.pl, katalog AK47 (5 lata w sieci) ...oraz Wirtualne-miasta.eu
"Dopóki nie skorzystałem z Internetu, nie wiedziałem, że na świecie jest tylu idiotów" - Stanisław Lem

Odnośnik do komentarza
Udostępnij na innych stronach

Mam jeszcze jedno pytanie, ale teraz już ostatnie :)

Mamy w kodzie coś takiego:

parameters: { id: ID, zapisz: 'OK', tresc: $F('tresc'), email: $F('email_w'), imie: $F('imie_w'), tytul: $F('tytul_w') },

.. i próbuje zrobić coś takiego w zależności od parametru ID:

if (ID == "0")
		{
			parameters: {id: ID, zapisz: 'OK', tresc: $F('tresc'), tytul: $F('tytul_w') }, 
		} else
		{
			parameters: {id: ID, zapisz: 'OK', tresc: $F('tresc'), email: $F('email_w'), imie: $F('imie_w'), tytul: $F('tytul_w') },	
		}

..ale tak chyba nie można, więc pytanie jak można?

Mar.

Polecam katalog SeoPark.pl, katalog AK47 (5 lata w sieci) ...oraz Wirtualne-miasta.eu
"Dopóki nie skorzystałem z Internetu, nie wiedziałem, że na świecie jest tylu idiotów" - Stanisław Lem

Odnośnik do komentarza
Udostępnij na innych stronach

  • 5 tygodni później...

Cześć

Tak faktycznie nie może to być jak napisałeś ponieważ to jest praktycznie jedna "wielka" instrukcja w środek której wsadzasz warunki if. Powinno zadziałać następujące rozwiązanie:

var params = { };
if (ID == "0")
{
 params = { id: ID, zapisz: 'OK', tresc: $F('tresc'), tytul: $F('tytul_w') },
} else
{
  params = { id: ID, zapisz: 'OK', tresc: $F('tresc'), email: $F('email_w'), imie: $F('imie_w'), tytul: $F('tytul_w') },	
}

następnie w poprzednim kodzie który dałem (który zacytowałeś) zamieniamy:

parameters: params,

I to wszystko powinno zadziałać :) jak coś to pisz.

Pozdrawiam.

Michał

Odnośnik do komentarza
Udostępnij na innych stronach

Rozumiem, że funkcja teraz powinna wyglądać tak:

function showFormKontakt(BODY,ID)
{
var params = { };
		if (ID == "0")
		{
			 params = { id: ID, zapisz: 'OK', tresc: $F('tresc'), tytul: $F('tytul_w') },
		} else
		{
			  params = { id: ID, zapisz: 'OK', tresc: $F('tresc'), email: $F('email_w'), imie: $F('imie_w'), tytul: $F('tytul_w') },	
		}

Dialog.confirm(BODY, { className:"alphacube", width:420, okLabel: "ok", cancelLabel: "cancel", onOk:function(win)
{


	new Ajax.Request('/kontakt.php',
	{
		parameters: params,

		onSuccess: function(transport) 
		{
			var notice = $('login_error_msg');

			if (transport.responseText == "OK") 
			{
				$('login_error_msg').innerHTML='<div id="ok">Wiadomo¶ć została wysłana</div>';
				notice.show();
				setTimeout ('Windows.focusedWindow.close()',1000);
			}
			else 
			{
				$('login_error_msg').innerHTML=transport.responseText;
				new Effect.Shake(Windows.focusedWindow.getId());

			}

			notice.show();
			Windows.focusedWindow.updateHeight();

		},
		onFailure: function()
		{
				alert("Bląd w połączeniu z serwerem!");
		}
	});
}});
}

lecz niestety:

Błąd: syntax error

Wiersz: 223, Kolumna: 3

Kod źródłowy:

} else

oraz:

Błąd: kontakt is not defined

Mar.

Polecam katalog SeoPark.pl, katalog AK47 (5 lata w sieci) ...oraz Wirtualne-miasta.eu
"Dopóki nie skorzystałem z Internetu, nie wiedziałem, że na świecie jest tylu idiotów" - Stanisław Lem

Odnośnik do komentarza
Udostępnij na innych stronach

O mój błąd :D dałem , zamiast ; powinno być tak

var params = { };
if (ID == "0")
{
 params = { id: ID, zapisz: 'OK', tresc: $F('tresc'), tytul: $F('tytul_w') };
} else
{
  params = { id: ID, zapisz: 'OK', tresc: $F('tresc'), email: $F('email_w'), imie: $F('imie_w'), tytul: $F('tytul_w') };	
}

Zobacz teraz

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności