• 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)

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
0 głosów
152 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 452 wizyt
0 głosów
0 odpowiedzi 279 wizyt
pytanie zadane 26 lutego 2020 w C# przez Moras Obywatel (1,620 p.)
+1 głos
1 odpowiedź 2,272 wizyt
pytanie zadane 28 stycznia 2018 w C# przez Kfiotek Początkujący (370 p.)

93,435 zapytań

142,430 odpowiedzi

322,666 komentarzy

62,800 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

...