Bonjour,

J'aimerais afficher une vue de détails, avec plusieurs cases à cocher. J'aimerais que le cochage/décochage des cases soit pris en compte dans une base de données sans nécessiter l'utilisation d'un bouton submit, ou un rafraichissement de la page.

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
@ModelType MvcApplication4.OpportuniteDetails
 
@Code
    ViewData("Title") = "Details"
End Code
 
<script type="text/javascript">
    $(function () {
        $(':checkbox').change(function () {
            $.ajax({
                url: '@Url.Action("update")',
                type: 'POST',
                data: { isChecked: $(this).is(':checked') },
                success: function (result) { }
            });
        });
    });
</script>
 
[...]
 
@Html.Raw("mail envoyé?") @Html.CheckBox(Model.Reseaux.mail)
ou ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<input type="checkbox" name="facebook" id="facebook" onclick="function()" />
Mon souci est que quand je coche ou décoche la case, je ne rentre pas dans ce script. (déjà que je sais pas encore trop bien ce que je devrai faire après :-( ).

Autre truc bizarre, le code source généré par le serveur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
mail envoyé? <input id="False" name="False" value="true" type="checkbox"><input name="False" value="false" type="hidden">
En plus de rentrer dans le script, ça me dérangerait pas de pouvoir changer le name="False", et comprendre pourquoi il y a un second input de type="hidden".



édit : je viens de comprendre un truc un peu con. Le script s'exécutant coté client, le programme de débogage de VS ne devait jamais s'arrêter sur un point d'arrêt présent dans le script... Donc, je précise un peu plus le souci.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
<script type="text/javascript">
    $(function () {
        $(':checkbox').change(function () {
            alert("test")
            $.ajax({
                url: '@Url.Action("update")',
                type: 'POST',
                data: { isChecked: $(this).is(':checked') },
                success: function (result) { }
            });
        });
    });
</script>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
<script type="text/javascript">
    $(function () {
        $(':checkbox').change(function () {
            $.ajax({
            alert("test")
                url: '@Url.Action("update")',
                type: 'POST',
                data: { isChecked: $(this).is(':checked') },
                success: function (result) { }
            });
        });
    });
</script>
Il n'y a que dans le premier cas que l'alerte est affichée. Le truc c'est que je sais pas trop à quoi le $.ajax est sensé servir.