2010-04-08 5 views
1

J'utilise jQuery et AJAX pour charger du contenu à partir de liens et de formulaires dans un div de contenu. En outre, j'utilise le plugin Address pour activer le bouton de retour et actualiser. Du côté serveur, j'utilise Java et Spring MVC.Adresse jQuery - rediriger après l'envoi d'un formulaire

Comme j'utilise jQuery Address et AJAX, la seule page directement chargée est "index.html". Tout le reste est chargé dans un div de contenu, et quelle page à charger est spécifiée dans le hachage, c'est à dire. "index.html #/users/add.html" va charger "users/add.html". Maintenant, "users/add.html" contient maintenant un formulaire pour créer un nouvel utilisateur. Lorsque le formulaire est soumis et que tout s'est bien passé, le contrôleur redirige vers "users/index.html". Le problème est que jQuery Address ne connaît pas la redirection, donc l'url restera "index.html #/users/add.html". Et c'est un problème lorsque vous actualisez la page et que vous êtes renvoyé au formulaire au lieu de la page d'index.

Existe-t-il un moyen de résoudre ce problème?

Merci,
Stian

+0

Si vous faites une redirection après le formulaire soumis, quel est le point de faire le formulaire en ajax soumettre? –

Répondre

0

Je me rends compte que ma description du problème n'a pas été le meilleur, mes excuses pour cela.

J'ai reformulé le problème dans une autre question, je n'ai pas eu de réponse mais j'ai trouvé moi-même une solution. :)

AJAX - Get response URL after redirect

0

D'abord, j'init de ma forme comme ça:

$('FORM').submit(function() { 
    shareData = $(this).serializeArray();  
    $.address.value($(this).attr('action')); 
    }) 

après que j'ai dans ma méthode de changer quelque chose comme ça:

$.address.change(function(event) { 

    if (event.path != '/' && event.parameters.layout_to_use != undefined) { 

     // if no json, load don't do a post request 
     shareData = _arrayToJson(shareData);; 

     $('#areatoreload') 
      .html('<span style="background-color:red;">loading...</span>') 
      .load('myscript.php', shareData, function() {}); 
    } 
    return false; 
}); 

et je gère mon lien de la même manière. J'espère que cela peut vous aider. shareData n'est pas un très bon moyen, mais je ne trouve pas autre chose pour le moment. ce code n'est pas testé, je viens d'extraire une partie de mon propre code.

Questions connexes