JQuery选项卡式导航菜单和PHP表单问题?

时间:2010-03-18 23:59:14

标签: php jquery

我正在使用包含不同类型表单的JQuery选项卡式菜单,当我选择位于不同选项卡下的不同表单并提交表单时,选项卡将跳转到默认选项卡而不是表单所在的当前选项卡英寸

我想知道如何解决此问题,以便在提交表单时仍然选择当前选项卡,是JQuery还是PHP问题?

这是JQuery。

$(document).ready(function() {

    //When page loads...
    $(".form-content").hide(); //Hide all content
    var firstMenu = $("#home-menu ul li:first");
    firstMenu.show();
    firstMenu.find("a").addClass("selected-link"); //Activate first tab
    $(".form-content:first").show(); //Show first tab content

    //On Click Event
    $("#home-menu ul li").click(function() {

        $("#home-menu ul li a").removeClass("selected-link"); //Remove any "selected-link" class
        $(this).find("a").addClass("selected-link"); //Add "selected-link" class to selected tab
        $(".form-content").hide(); //Hide all tab content

        var activeTab = $(this).find("a").attr("href"); //Find the href attribute value to identify the selected-link tab + content
        $(activeTab).fadeIn(); //Fade in the selected-link ID content
        return false;
    });

});

1 个答案:

答案 0 :(得分:0)

当你提交表单页面刷新时,它会将数据发送到服务器,而javascript只保留页面上的起始位置Load!

如果你想达到你想要的效果,你必须做一个AJAX呼叫!

你也可以使用像这样的插件

  

http://www.mikage.to/jquery/jquery_history.html

恕我直言,你需要从头开始使用AJAX!

所以阅读本教程!

  

http://php4every1.com/tutorials/jquery-ajax-tutorial/

基本上你的表格看起来像这样:

<form methot="POST" action="yourphppage.php" name="myform" id="myform">
      <input type="text" value="" id="username" />

你需要通过这样的方式将数据传递给AJAX!

$('#myform').submit(function() {

var username = $('username').val();

$.ajax({
type: "POST",    
url: "yourphppage.php",    
data: "action=postdata&username=" + username,    
success: function(data){
   // at this point if all is ok you 
//receive data back and you can do other stuff!   
 // data is what you keep back from server (php)    
   $('#your_div_that_hold_ajax_responce').html(data);

}, error: function(data){
 alert('something goes wrong!');    
}   
}); 
});
你的PHP代码看起来像这样:

if ( isset( $_POST['action'] ) ) {

switch($_POST['action']) {

case 'postdata':
echo $_POST['username'];
break;

}
}