JQuery Form: ajaxForm + JQuery UI: Sortable - HTML/CSS - Programmation
Marsh Posté le 03-08-2009 à 14:15:49
pour le code ca pas les ch'tites étoiles, c'est la balise [code], bouton .
sinon, t'as essayé de mettre un bête alert('toto') dans ton ready pour vérifier s'il est appelée ou pas?
Marsh Posté le 03-08-2009 à 14:31:30
pour la balise code, dsl j'ai copié collé mon post du google group de jquery et apres avoir traduit j'ai pas pensé a rajouté ca
pour le ready, justement il est pas appelé dans ajaxReturn.jsp
j'ai continué a cherché un peu et il semblerait qu'effectivement, ajax ne revoit pas d'evenement ready quand la 2e page est integrée dans le div de la premiere. En cherchant un peu plus encore, j'ai decouvert un plugin (livequery) qui a l'air de faire ce que je demande. j'ai changé mon code en ceci
Code :
|
Ca a l'air de marché sur un html test que j'ai fait, je vais l'inculre a mon projet pour verifier.
Y a t il une meilleure solution???
Marsh Posté le 03-08-2009 à 15:08:00
ce code fonctionne tres bien sur des pages html simples
Code :
|
Code :
|
dés que je passe dans du jsp, le seul moyen que j'ai trouvé pour que cela fonctionne, c'est de mettre tout le js dans la premiere page (pas top) comment je peux corriger ca
Code :
|
Code :
|
Marsh Posté le 03-08-2009 à 16:44:53
Toinou87 a écrit : dés que je passe dans du jsp, le seul moyen que j'ai trouvé pour que cela fonctionne, c'est de mettre tout le js dans la premiere page (pas top) |
non au contraire...
ta réponse ne devrait même pas avoir de balises html et body , etc, vu que tu l'inclus dans un div... c'est juste une portion de html, selon moi tu ne devrais avoir que le <ul><li>... du coup, normal que ca ne déclenche pas de ready, tu n'as pas recharger la page, ni charger de nouvelle page...
je dirais que la def du sortable, elle devrait être dans le ajaxform qui peut contenir une fonction appelée lorsque le résultat est ok...
Marsh Posté le 04-08-2009 à 10:00:27
pataluc a écrit : |
On est d'accord sur pas de html, pas de body... (encore que c'est pas interdit)
par contre ca veut pas dire qu'il peut pas y avoir de balise <script> qui peuvent se mettre n'importe ou
pataluc a écrit : |
J'ai deja fait cette modification (success: function(){...}) cependantje cherche une solution qui me permettrait de mettre le nouveau JS dans la nouvelle page.
J'ai trouvé une solution avec livequery qui marche dans mes pages html de test mais pas dans mon jsp. Cette solution aurait l'avantage qu'il n'y aurait pas de code inutile dans ma premiere page. Je m'explique: mon ajaxForm appelle un controleur, celui ci peut revoyé différentes view a insérer dans le div. Et le JS a executer pour les différents resultats n'est pas forcement le meme. D'ou le fait que je cherche a executer le JS a partir de la page resultat.
code de ce qui marche dans mes html mais pas dans mes JSP (est ce que ca peut etre du a mon tomcat ou bien la configuration de ma java-web app?)
/***PREMIERE PAGE***/
Code :
|
/***DEUXIEME PAGE (qui n'est pas une page mais seulement ce js et le ul li)***/
Code :
|
Marsh Posté le 04-08-2009 à 10:04:34
Toinou87 a écrit : |
oui je sais, ce n'est pas ce que j'ai dit, je disais que pour moi, ca expliquait pourquoi l'event document ready n'était pas redéclenché.
sinon, tu as essayé de mettre ton code sans le mettre dans une function? du coup il devrait être exécuté dès qu'il est chargé... et si tu le mets après ton ul, il ne devrait pas y avoir de problème de chargement...
Marsh Posté le 04-08-2009 à 10:12:37
encore une fois: ca fonctionne dans les pages html de test mais pas dans mon jsp. J'y comprends rien
Marsh Posté le 04-08-2009 à 10:33:23
j'ai dézippé viteuf un tomcat, et mis mon code de test tel quel dans un jsp, effectivement j'ai le même pb, le code qui marche en html ne fonctionne pas en jsp... je ne sais que te dire.
EDIT: autant pour moi, ca venait de mon ff configuré en useragent ie pour des raison de proxy...
ca marche bien chez moi, quand je met le code suivant dans un jsp:
Code :
|
je vais essayé d'ajouter le formulaire en amont, pour me conformer à ton exemple.
Marsh Posté le 04-08-2009 à 10:43:29
ben deja ca me rassure de pas etre le seul a avoir ce probleme.
mais c'est louche quand meme
edit je vais refaire un autre test et si ca plante je te file mon code pour voir si je suis seul
Marsh Posté le 04-08-2009 à 10:55:37
bon j'ai fait un test simple dans mes jsp (bien que mon code d'avant ne soit pas tres compliqué)
apparement ca fonctionne donc je vais essayé de repartir de la et de voir a quel moment ca plante.
Merci pour l'aide en tout cas. Si je decouvre quel etait le probleme ou si j'en ai un autre lié je reposterai ici.
Marsh Posté le 04-08-2009 à 11:00:34
ca viendrait pas de ton form:form qui n'est pas bien interprété par tomcat? c'est pas plutot html:form? (en fonction de ta taglib ou de la manière dont tu l'as définie...)
en tout cas chez moi ca marche, avec la jsp index.jsp:
Code :
|
qui appelle ajax.jsp:
Code :
|
Marsh Posté le 04-08-2009 à 11:03:50
mon form:form c'est pour Spring framework et il a pas l'air de poser de probleme.
Je reconstruis mes pages/controllers au fur et a mesure, j'espere trouver l'erreur
Marsh Posté le 04-08-2009 à 11:07:15
Toinou87 a écrit : mon form:form c'est pour Spring framework et il a pas l'air de poser de probleme. |
ce que je voulais dire, c'est que dans le source généré par tomcat, tu retrouve bien la même chose que quand tu le mets en statique en html?
Marsh Posté le 04-08-2009 à 11:53:29
j'ai a priori trouvé. Mais je comprends vraiment pas pourquoi.
Dans mon form: j'ai un input type file.
Plus tard ca doit etre la lists des noms de fichiers qui doit etre sortable mais a la reconstruction j'en suis pas encore la. Pour l'instant j'ai une liste fictive mais je viens de rajouter L#input type file.
J'ai fait 15 20 (plus en fait, j'ai reessayé avant de valider ce mesage)fois le test et apparement ca vient de la. Quand je submit sans avoir selectionner de fichier, la liste est sortable. Quand je submit en ayant selectionné un fichier, elle est pas sortable.
En gros ca correspondrait a la classe de ma requete: si c'est une MultipartHttpServletRequest ca plante, sinon ca marche. Mais alors le pourquoi du comment????
Marsh Posté le 03-08-2009 à 13:56:10
Salut tout le mode
Je suis nouveau dans le monde de l'ajax. Pour l'instant j'utilise seulement les bases.
Avec le plugin Form de Jquery j'ai créé un ajaxForm qui m'affiche la page resultat dans la div cible
/***************************************************************************/
//CODE of assembler.jsp
<html>
<head>
</head>
<body>
<script type="text/javascript" src="/scripts/jquery.js"></script> //v1.3.2
<script type="text/javascript" src="/scripts/jquery_form.js"></script>//v2.07
<script type="text/javascript">
$(document).ready( function() {
$('#listFileForm').ajaxForm({
type: 'POST',
target: '#listFileResult',
resetForm:true
});
});
</script>
<form:form id="listFileForm" action="assembler.do" enctype="multipart/form-data">
<input type="file" name="theForm.file" width="25px" />
<input type="submit" class="button" name="assemblerAjaxSubmit" value='Add' />
</form:form>
<div id="listFileResult"></div>
</body>
</html>
/***************************************************************************/
La réponse qui va etre affiché dans la div est un fichier jsp qui crée une liste (ul li). J'ai besoin que cette liste soit Sortable (Jquery UI) mais je n'arrive pas a le faire dans cette page retournée par ajax (comprendre que j'arrive a le faire marcher dans une page simple).
J'ai essayé le code suivant mais ce qui se trouve dans le $(document).ready() n'a pas l'air d'etre appelé. J'ai supposé qu'il n'y avait pas de ready event au retour de la page
/***************************************************************************/
//CODE of ajaxReturn.jsp
<script type="text/javascript" src="/scripts/jquery-ui-1.7.2.custom.js"></script>
<script type="text/javascript">
// When the document is ready set up our sortable with it's inherant function(s)
$(document).ready(function() {
$("#test-list" ).sortable({
update : function () {
var order = $('#test-list').sortable('serialize');
alert(order);
}
});
});
</script>
<ul id="test-list">
//list items created by my jsp
</ul>
/***************************************************************************/
Savez vous ou j'ai faux? (partout ??? j'espere pas).
Merci d'avance pour l'aide.
---------------
Toinou87 ;-p May the force be with you!!