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. :)