form - ajax
Sziasztok!
Egy olyan problémám lenne, hogy van egy oldalam, aminek a link kezelését ajaxal csináltatatom. Most a formokat is szeretném ajaxal kezeltetni. Gond ott kezdődik, hogy két fajta formot használok. Egy ami az admin oldal bejelentkezését kezeli, a másik pedig a #tartalom divbe behívott egyéb formok. Olyan megoldást szeretnék, hogy selector-tól függően hajtódjon végre az ajax script. Próbáltam kutatni a neten, de eddig nem sikerült működő megoldást találni...
A honlap felépítése nagyvonalakban:
<body>
<div id='admin'></div>
<div class='loading'></div>
<div id='tartalom'></div>
</body>
■ Egy olyan problémám lenne, hogy van egy oldalam, aminek a link kezelését ajaxal csináltatatom. Most a formokat is szeretném ajaxal kezeltetni. Gond ott kezdődik, hogy két fajta formot használok. Egy ami az admin oldal bejelentkezését kezeli, a másik pedig a #tartalom divbe behívott egyéb formok. Olyan megoldást szeretnék, hogy selector-tól függően hajtódjon végre az ajax script. Próbáltam kutatni a neten, de eddig nem sikerült működő megoldást találni...
A honlap felépítése nagyvonalakban:
<body>
<div id='admin'></div>
<div class='loading'></div>
<div id='tartalom'></div>
</body>
- (function($){
- ...
- $.fn.submitForm=function(){
- $("#tartalom").delegate("form", "submit", function(){
- if(check() == false){
- return false;
- }
- var link=$(this).attr("action");
- var method=$(this).attr("method");
- method=(method)?method:"POST";
- $.ajax({
- type:method,
- url:link,
- data:$(this).serialize(),
- beforeSend: function(html){
- $("#tartalom").fadeOut("slow", function(){
- $("#tartalom").fadeIn("slow").html(html);
- });
- },
- success:function(html){
- $("#tartalom").html(html);
- $("form").submitForm();
- },
- error:function(XMLHttpRequest,textStatus,errorThrown){
- $("#tartalom").load("lib/error.php");
- return false;
- },
- complete: function(d,s){
- $(".loading").fadeOut("slow", function(){
- $(".loading").css("display","none");
- });
- }
- });
- return false;
- });
- $("#admin").delegate("form", "submit", function(){
- alert("Próba");
- var link=$(this).attr("action");
- var method=$(this).attr("method");
- method=(method)?method:"POST";
- $.ajax({
- type:method,
- url:link,
- data:$(this).serialize(),
- success:function(html){
- $("#admin").html(html);
- $("form").submitForm();
- },
- error:function(XMLHttpRequest,textStatus,errorThrown){
- $("#tartalom").load("lib/error.php");
- return false;
- }
- });
- return false;
- });
- }
- })(jQuery);
- function show_admin(link){
- $.ajax({
- type: "GET",
- url: link,
- data: "",
- success: function(html){
- $("#admin").fadeOut("slow", function(){
- $("#admin").fadeIn("slow").html(html);
- });
- },
- error: function(XMLHttpRequest,textStatus,errorThrown){
- $("#admin").fadeOut("slow", function(){
- $("#admin").fadeIn("slow").load("lib/error.php");
- });
- }
- });
- }
- function show(link){
- $.ajax({
- type: "GET",
- url: link,
- data: "",
- beforeSend: function(d,s){
- $(".loading").fadeIn("slow", function(){
- $(".loading").css("display","block");
- });
- },
- success: function(html){
- $("#tartalom").fadeOut("slow", function(){
- $("#tartalom").fadeIn("slow").html(html);
- });
- },
- error: function(XMLHttpRequest,textStatus,errorThrown){
- $("#tartalom").fadeOut("slow", function(){
- $("#tartalom").fadeIn("slow").load("lib/error.php");
- });
- },
- complete: function(d,s){
- $(".loading").fadeOut("slow", function(){
- $(".loading").css("display","none");
- });
- }
- });
- }
- $(document).ready(function(){
- ...
- $("form").submitForm();
- show_admin("admin/admin.php");
- show("pages/page.php?page=nagyterem");
- ...
- });
Meg van a gond, csak nem
a bejelentkezési adatokat, $_SESSION ba tárolom... ez létre is, jön, a böngésző látja... sőt, a létrejötte pillanatában kiíratom, akkor meg is jelenik. De a behívott php oldalak már nem kapják meg... Mi lehet a gond?
session_start
session_start()
? Minden fájl elején, amit az alkalmazás a böngészőből közvetlenül el tud érni, jó lenne ha szerepelne asession_start()
különben előfordulhat, hogy megszakad a munkamenet.Így néz ki az
Megtaláltam a hibát. :)