• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

asp net mvc przenoszenie danych do textboxa z wyboru dropdownlist(danych)

Object Storage Arubacloud
0 głosów
109 wizyt
pytanie zadane 7 grudnia 2020 w C# przez dz3101 Nowicjusz (220 p.)
zmienione kategorie 8 grudnia 2020 przez dz3101

Robię projekt w programie Visual Studio na platformie asp net framework mvc .

Chce zrobić pole w którym będzie wyświetlało i zapisywało dane pobrane z Dropdownlist i zapisywało do tabeli w bazie danych. Zrobiłem elementy które pobierają mi dane z bazy do Dropdownlist.

Nie umiem zakodować funkcji która po wyborze specjalisty(id), lekarza, wizyty będzie wstawiała np. nazwę specjalisty do  pola Tekstowego. Tak samo powinno działać pole z imieniem i nazwiskiem lekarza oraz wizyta(jako godz).

Funkcja która pobiera i wyświetla nazwę specjalisty, imię,nazwisko lekarza zrobiłem z tutoriala na youtubie a nie umiem zrobić dalej . Nie ogarniam kodowania w js, nie wiem czy jest prostszy sposób na rozwiązanie problemu.

Prosze o pomoc 

Okno widoku create

@model Terminarz.Models.KartaRezerwacji
@{
    ViewBag.Title = "Rezerwaccja wizyty";
}
<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <title>Rezerwacja</title>
    @Styles.Render("~/Style/style.css")
</head>
<body>
    @using (Html.BeginForm())
    {
        @Html.AntiForgeryToken()

    <div class="form-horizontal" style="color:black; font-size:20px;">
        <h4>Zrób rezerwacje wizyty</h4>

        <hr />
        @Html.ValidationSummary(true, "", new { @class = "text-danger" })

        <div class="form-group">
            <h3 class="control-label col-md-2">Specjalista:</h3>
            <div class="col-md-10">
                @if (ViewBag.SpecjalistaList != null)
                {
                    @Html.DropDownListFor(model => model.IdSpecjalista, ViewBag.SpecjalistaList as SelectList, "-Wybierz specjaliste-", new { @class = "form-control" })
                }
            </div>
        </div>
        <div class="form-group" hidden>
            <h3 class="control-label col-md-2">Specjalista:</h3>
            <div class="col-md-10">
                <input type="text" value="" /> @* tu powinno zaciągnąć nazwe specjalisty jakiego wybierze uzytkownik z dropdownlist z tabeli specjalista*@
            </div>
        </div>
        <div class="form-group">
            <h3 class="control-label col-md-2">Lekarz:</h3>
            <div class="col-md-10">
                @Html.DropDownListFor(model => model.IdLekarza, new SelectList(" "), "-Wybierz lekarza-", new { @class = "form-control" })
            </div>
        </div>
        <div class="form-group" hidden>
            <h3 class="control-label col-md-2">Imie lekarza</h3>
            <div class="col-md-10">
                <input type="text" value="" /> @* tu powinno zaciągnąć imie lekarz które uzytkownik wybierze z dropdownlist z tabeli lekarzy*@
            </div>
        </div>
        <div class="form-group" hidden>
            <h3 class="control-label col-md-2">Nazwisko lekarza</h3>
            <div class="col-md-10">
                <input type="text" value="" /> @* tu powinno zaciągnąć nazwisko lekarza które uzytkownik wybierze z dropdownlist z tabeli lekarzy*@
            </div>
        </div>
        <div class="form-group">
            @Html.LabelFor(model => model.IdWizyta, "Godzina wizyty:", htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.DropDownList("IdWizyta", null, htmlAttributes: new { @class = "form-control" })
                @Html.ValidationMessageFor(model => model.IdWizyta, "", new { @class = "text-danger" })
            </div>
        </div>
        <div class="form-group">
            <h3 class="control-label col-md-2">Godzina</h3>
            <div class="col-md-10">
                <input type="text" value="" /> @* tu powinno zaciągnąć wybraną przez uzytkownika godzinę, której id jest pobierane z tabeli*@
            </div>
        </div>
        <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <input type="submit" value="Zatwierdź" class="btn btn-default" />
            </div>
        </div>
    </div>
    }

    <script src="~/Scripts/jquery-3.4.0.min.js"></script>
    <script>
        $(document).ready(function () {
            $("#IdSpecjalista").change(function () {
                $.get("/KartaRezerwacji/GetLekarzList", { IdSpecjalista: $("#IdSpecjalista").val() }, function (data) {
                    $("#IdLekarza").empty();
                    $.each(data, function (index, row) {
                        $("#IdLekarza").append("<option value='" + row.IdLekarza + "'>'" + row.LekarzNazwisko + "'</option>")
                    });
                });
            })
        });
    </script>

    <div>
        @Html.ActionLink("Back to List", "Index")
    </div>
</body>
</html>

Kod kontrolera :

using Microsoft.AspNet.Identity;
using PagedList;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Net;
using System.Web.Mvc;
using Terminarz.Models;

namespace Terminarz.Controllers
{
    public class KartaRezerwacjiController : Controller
    {
        private TerminarzContext db = new TerminarzContext();

        public JsonResult GetLekarzList(int IdSpecjalista)
        {
            db.Configuration.ProxyCreationEnabled = false;
            List<Lekarz> LekarzList = db.Lekarze.Where(x => x.IdSpecjalista == IdSpecjalista).ToList();
            return Json(LekarzList, JsonRequestBehavior.AllowGet);
        }


        public ActionResult Create()
        {
            List<Specjalista> SpecjalistaList = db.Specjaliści.ToList();
            ViewBag.SpecjalistaList = new SelectList(SpecjalistaList, "IdSpecjalista", "NazwaSpecjalisty");


            ViewBag.Email = User.Identity.GetUserName();

            ViewBag.IdWizyta = new SelectList(db.Wizyty, "IdWizyta", "Godzina");
            return View();
        }

        // POST: KartaRezerwacji/Create
        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Create([Bind(Include = "IdKartaRezerwacji,Email,DataWizyty,Telefon,IdSpecjalista,NazwaSpecjalisty,IdLekarza,ImieLekarza,NazwiskoLekarza,IdWizyta,Godzina")] KartaRezerwacji kartaRezerwacji,Specjalista specjalista,Lekarz lekarz)
        {
            string email = User.Identity.GetUserName();


            if (ModelState.IsValid)
            {
                kartaRezerwacji.Email = email;
                db.KartaRezerwacji.Add(kartaRezerwacji);
                db.SaveChanges();
                return RedirectToAction("KartaUzytkownika");
            }

            ViewBag.IdLekarza = new SelectList(db.Lekarze, "IdLekarza", "LekarzNazwisko", kartaRezerwacji.LekarzNazwisko);
            ViewBag.IdSpecjalista = new SelectList(db.Specjaliści, "IdSpecjalista", "NazwaSpecjalisty", kartaRezerwacji.IdSpecjalista);
            ViewBag.IdWizyta = new SelectList(db.Wizyty, "IdWizyta", "Godzina", kartaRezerwacji.IdWizyta);
            return View(kartaRezerwacji);
        }
      
    }
}

Model klasy:

using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace Terminarz.Models
{
    public class KartaRezerwacji
    {
        [Key]
        [Display(Name = "IdKartaRezerwacji")]
        public int IdKartaRezerwacji { get; set; }

        [Display(Name = "Email")]
        public string Email { get; set; }

        [Required(ErrorMessage = "Proszę wybrać datę wizyty")]
        //[Display(Name = "Data wizyty")]
        [DataType(DataType.Date, ErrorMessage = "Niepoprawny format daty")]
        [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
        public System.DateTime DataWizyty { get; set; }

        [Required(ErrorMessage = "Proszę wproawdzić numer teleofnu")]
        [Display(Name = "Telefon")]
        [DataType(DataType.PhoneNumber)]
        [RegularExpression(@"^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{3})$", ErrorMessage = "Nieprawidłowy numer telefonu")]
        public int Telefon { get; set; }
        public virtual Uzytkownik Uzytkownicy { get; set; }

        [Display(Name = "Identyfikator specjalisty")]
        public int IdSpecjalista { get; set; }

        [Display(Name = "Nazwa specjalisty")]
        public string NazwaSpecjalisty { get; set; }
        public virtual Specjalista Specjalista { get; set; }

        [Display(Name = "Identyfikator lekarza")]
        public int IdLekarza { get; set; }
        [Display(Name = "Imie lekarza")]
        public string ImieLekarza { get; set; }
        [Display(Name = "Nazwisko lekarza")]
        public string NazwiskoLekarza { get; set; }

        #region dodatkowe pole not mapped 
        [NotMapped]
        [Display(Name = "Lekarz")]
        public string LekarzNazwisko { get { return ImieLekarza + " " + NazwiskoLekarza; } }
        #endregion
        public virtual Lekarz Lekarz { get; set; }

        //[Display(Name = "Identyfikator usługi")]
        //public int IdUsługa { get; set; }

        //[Display(Name = "Nazwa usługi")]
        //public string NazwaUsługi { get; set; }
        //public virtual Usługa Usługa { get; set; }


        [Display(Name = "Identyfikator wizyty")]
        public int IdWizyta { get; set; }

        [Display(Name = "Godzina")]
        public string Godzina { get; set; }        
        public virtual Wizyta Wizyta { get; set; }

    }
}
1
komentarz 7 grudnia 2020 przez ScriptyChris Mędrzec (190,190 p.)

Umieść proszę kod w odpowiedni sposób. Opisz też na czym konkretnie polega problem, bo napisałeś co chcesz zrobić, ale nie opisałeś jak Twój problem ma się do pokazanego kodu - czy coś konkretnego nie działa, albo czegoś konkretnego nie rozumiesz?

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
0 odpowiedzi 298 wizyt
0 głosów
0 odpowiedzi 211 wizyt
pytanie zadane 26 lutego 2020 w C# przez Moras Obywatel (1,620 p.)
+1 głos
1 odpowiedź 2,197 wizyt
pytanie zadane 28 stycznia 2018 w C# przez Kfiotek Początkujący (370 p.)

92,547 zapytań

141,390 odpowiedzi

319,509 komentarzy

61,931 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...