MVC: Ищем полный учебник для отправки / получения статуса флажка для бэкэнда с AJAX - PullRequest
0 голосов
/ 28 мая 2019

Я ищу учебник с полным примером того, как отправить с AJAX состояние одного флажка в бэкэнд (публикацию) и загрузить статус флажка из бэкенда в интерфейс (получить) в java MVC.

Ответы [ 2 ]

0 голосов
/ 31 мая 2019
<script>
        $(document).ready(function () {
            $('input[name=sendMeOfferslCheckbox]').click(function () {
                 var chkbx=document.getElementById('sendMeOffersCheckboxId');
                  if (chkbx.checked) {//send offers
                      $.ajax({
                          url: 'offersPage',
                          type: 'POST',
                          data: {sendOffers: 'true'},
                          dataType: 'json'
                      });
                  } else { //don't send me offers
                      $.ajax({
                          url: 'offersPage',
                          type: 'POST',
                          data: {sendOffers: 'false'},
                          dataType: 'json'
                      });
                  }
            });
        }); 
</script>

Контроллер

@RequestMapping(value = "/sendOffers", method = RequestMethod.POST)
public @ResponseBody
String Submit(@RequestParam("sendOffers") String sendOffers) {
String res = sendOffers;

//TODO: change status in DB

return sendOffers;
}
0 голосов
/ 28 мая 2019

Вот как вы это делаете. Это лучше, чем учебник. https://dotnetfiddle.net/RAHnmz

Контроллер / Просмотр модели

namespace Testy20161006.Controllers
{
    public class CheckBoxItem
    {
        public string Text { get; set; }
        public string Value { get; set; }
        public bool Selected { get; set; }
    }

    public class CheckBoxList
    {
        public IList<CheckBoxItem> CheckBoxItems { get; set; }
    }

    public class HomeController : Controller
    {
        [HttpPost]
        public ActionResult Tut158(CheckBoxList checkBoxList)
        {
            return View(checkBoxList);
        }

        public ActionResult Tut158()
        {
            //creating viewmodel with Even Numbers checked
            CheckBoxItem cbi1 = new CheckBoxItem { Text = "Text1", Value = "Value1", Selected = false };
            CheckBoxItem cbi2 = new CheckBoxItem { Text = "Text2", Value = "Value2", Selected = true };
            CheckBoxItem cbi3 = new CheckBoxItem { Text = "Text3", Value = "Value3", Selected = false };
            CheckBoxItem cbi4 = new CheckBoxItem { Text = "Text4", Value = "Value4", Selected = true };
            CheckBoxList cbl = new CheckBoxList();
            cbl.CheckBoxItems = new List<CheckBoxItem>();
            cbl.CheckBoxItems.Add(cbi1);
            cbl.CheckBoxItems.Add(cbi2);
            cbl.CheckBoxItems.Add(cbi3);
            cbl.CheckBoxItems.Add(cbi4);

            return View(cbl);
        }

View

@model Testy20161006.Controllers.CheckBoxList
@{
    Layout = null;
}
@using Testy20161006.Controllers
<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Tut158</title>
</head>
<body>
    <div>
        @using (Html.BeginForm())
        {
            for (var i = 0; i < Model.CheckBoxItems.Count; i++)
            {
                @Html.Label(Model.CheckBoxItems[i].Text)
                @Html.CheckBoxFor(
                             m => Model.CheckBoxItems[i].Selected)

                @Html.HiddenFor(m => Model.CheckBoxItems[i].Text)
                @Html.HiddenFor(m => Model.CheckBoxItems[i].Value)
            }
            <input type="submit" value="Post" />
        }
    </div>
</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...