Bonjour,
Comme explicité dans l'intitulé, je cherche une solution pour conserver ma sélection dans une table malgré que le submit du formulaire actualise la page.
Avant d'exposer mon code, mes lectures m'apprennent qu'il vaudrait mieux utiliser AJAX pour traiter ce formulaire et empêcher l'actualisation par return false;
Cette solution apporte son lot d'autres problème et nécessiterait pour moi de devoir revoir entièrement mon code. Si aucune autre solution ne se révèle, je devrai sans doute le faire.
Toujours est il, que votre avis au préalable m’intéresse :
Deux tables : l'une qui crée des commandes (orders) via son formulaire
l'autre : qui contient les "articles"
En selectionnant une "tr" de la table order, je filtre le contenu de la table2 sur l'id de la commande choisie.
MAIS AUSSI :
je récupère le contenu qui vient d'être inséré dans ma table pour le réinjecter dans le formulaire1 et une partie dans le formulaire2
Tout va comme je le souhaite sauf que si j'entre un nouvel article, après le submit je perds la selection de ma commande dans la table 1
Je souhaite donc savoir s'il est possible de "fixer" cette selection
ou
s'il est possible de ramener la sélection là où elle se trouvait avant l'actualisation.
ou
s'il est possible de n'actualiser qu'une partie de la page avec l'envoi du formulaire en lieu et place de la page complète.
Le code jquery :
Je n'ai pas mis la partie php car longue et peut être inutile pour ce que je demande. si besoin dite !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 //=========== Selection d'une ligne dans Order ======================= var pickedup; $( "#list_Orders tr" ).on( "click", function( event ) { if (pickedup != null) { pickedup.css( "background-color", "#FFF" ); //well color } $("#numOrderLine").val($(this).find("td").eq(1).html()); $( this ).css("background-color", "#78a3d4" ); //select color pickedup = $(this); $("#numOrder").val($(this).find("td").eq(1).html()); $("#titleInsert").val($(this).find("td").eq(2).html()); $("#dateStartInsert").val($(this).find("td").eq(3).html()); $("#dateCloseInsert").val($(this).find("td").eq(4).html()); $("#noteInsert").val($(this).find("td").eq(5).html()); $("#titleOrderLine").val($(this).find("td").eq(2).html()); var idorder = $(this).find("td").eq(1).html(); $("#list_proposals tr ").filter(function() { $(this).toggle($(this).text().toLowerCase().indexOf(idorder) > -1) }); }); </script>
Partager