مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

oak

عضویت از 1394/06/03

مشکل در دراپ دان لیست

  • دوشنبه 2 بهمن 1396
  • 09:01
تشکر میکنم

سلام استان رو دریافت میکنم فقط شهرها دریافت نمیشن..از کدفرست هم استفاده کردم

 public IActionResult Index()
        {
            ViewBag.countries = _context.countries.ToList();

            return View();
        }
        public JsonResult getstatedbyid(int id)
        {
            List<state> list = new List<state>();
            list = _context.states.Where(a => a.country.Id == id).ToList();

            list.Insert(0, new state { Id = 0, Name = "انتخاب کنید" });
            return Json(new SelectList(list, "Id", "Name"));
        }

اینم view

odel testDroup.Models.Country
@{
    ViewData["Title"] = "Index";
}




    
        <label asp-for="Name"></label>
        <select id="Countryid" name="Countrylist" asp-for="Id" asp-items='@(new SelectList( ViewBag.countries,"Id", "Name"))'>
            <option >select</option>
        </select>

        <select id="stateid" name="statelist" asp-for="Id" asp-items='@(new SelectList(  string.Empty,"Id", "Name"))'></select>
    


<script src="~/Scripts/jquery-1.10.2.js"></script>

<script>
    $(function () {
        $("#Countryid").change(function () {
            var url = '@Url.Content("~/")' + "Cascade/getstatedbyid";
            var ddlsource = "#Countryid";
            $.getJSON(url, { id: $(ddlsource).val() }, function (data) {

                var item = '';
              //  $("#stateid").empty();
                $("#stateid").html(items);
                $.each(data, function (i, row) {
                    item += "<option value='" + row.value + "'>" + row.text + "</option>";

                });
                $("#stateid").html(items);
            })

        });

    });

</script>

اینم کد..مشکل چیه ممنون راهنمایی کنید البته از روی یه اموزش از یوتیوب 

این row.textوجود نداره داخل اسکریپت یعنی text

پاسخ های این پرسش

تعداد پاسخ ها : 17 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • دوشنبه 2 بهمن 1396
  • 09:21

براتون نمونه ضمیمه کردم

فایل های ضمیمه

کاربر سایت

oak

عضویت از 1394/06/03

  • دوشنبه 2 بهمن 1396
  • 12:19

اصلا جواب نمیده من asp core استفاده میکنم همش ارور میده ..روی روش شما

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • دوشنبه 2 بهمن 1396
  • 12:25

این لینک رو ببینید

کاربر سایت

oak

عضویت از 1394/06/03

  • چهارشنبه 4 بهمن 1396
  • 12:11

سلام 4روز حیرونم ..هر اموزش هر کدی که بود داخل نت همه ررو نوشتم..ولی درست نشد که نشد..استان میاره ولی شهرها روو نمیاره..نمیدونم چکار کنم..

ممنون نمونه پروژه ای که با asp.net core باشه و کدفرست...کسی ارسال کنه..واقعا خسته شدم....

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • چهارشنبه 4 بهمن 1396
  • 12:40

لاگ کنسول مرور گر را بررسی کنید ببینید خطا داره یا نه

کاربر سایت

oak

عضویت از 1394/06/03

  • شنبه 7 بهمن 1396
  • 12:32

لاگ کنسول ببرسی کردم ..مشکلی نیست داده ای داخل لاگ نمیاره فقط OPTIONخالی

اصلا من کلا کدها رو میزارم ممنون کسی ببینه چطوره..درضمن داخل یه ویدیو یوتیوب نگاه کردم همین مشکل رو داشت ولی امد PROXYرو داخل کد FALSEکرد..ولی من داخل کلاسها خودم ندیدمش که اضافه کنم..

  public class Taps
    {
        [Key]
        public int IdTaps { get; set; }
        public string Title { get; set; }

        public virtual ICollection<Categories> Categories { get; set; }
    }
 public class Types
    {
         [Key]
        public int IdTypes { get; set; }
        public string Title { get; set; }

        public int CategorieID { get; set; }

        [ForeignKey(nameof(CategorieID))]
        public virtual Categories Categories { get; set; }


      
    }
public class Categories
    {
        [Key]
        public int IdCategories { get; set; }
        public string Title { get; set; }


        public int TapID { get; set; }

        [ForeignKey(nameof(TapID))]
        public virtual Taps Taps { get; set; }


        public virtual ICollection<Types> Type { get; set; }
    }

اینم کنترل  TapsController

  public ActionResult Create()
        {
            ViewData["Type"] = new SelectList(_context.Type, "IdTypes", "Title");
            ViewData["Category"] = new SelectList(_context.Categorie, "IdCategories", "Title");
          //  ViewData["CategorieID"] = new SelectList(_context.Categorie, "IdCategories", "IdCategories");

            return View();
        }
        public JsonResult getstatedbyid(int id)
        {

            List<Categories> list = new List<Categories>();
            list = _context.Categorie.Where(a => a.IdCategories == id).ToList();

           list.Insert(0, new Categories { IdCategories = 0, Title = "انتخاب کنید" });
            return Json(new SelectList(list, "IdCategories", "Title"));
        }

اینم کد ویو ..و جاوا اسکریبت

<h2>Create</h2>

<h4>Taps</h4>
<hr />
<div>
    نوع
</div>
<div>
    @Html.DropDownList("Type", (SelectList)ViewBag.Type, "-- انتخاب ---", new { id = "rdbTyoe" })
    @Html.ValidationMessageFor(model => model.Categories)
</div>

<div>
    دسته بندی
</div>
<div>
    @Html.DropDownList("Category", (SelectList)ViewBag.Category, "-- انتخاب ---", new { id = "rdbCategory" })
    @Html.ValidationMessageFor(model => model.Categories)
</div>

<div>
    <a asp-action="Index">Back to List</a>
</div>

@section Scripts {
    @{await Html.RenderPartialAsync("_ValidationScriptsPartial");}

   
}

<script src="~/lib/jquery/dist/jquery.js"></script>

<script type="text/javascript">
  $('#rdbTyoe').change(function () {
                jQuery.getJSON('@Url.Action("getstatedbyid")', { id: $(this).attr('value') }, function (data) {
                $('#rdbCategory').empty();
                jQuery.each(data, function (i) {
                    
              var option = $('<option></option>').attr("value", data[i].IdCategories).text(data[i].Title);
                $("#rdbCategory").append(option);
                });
                });
                });
</script>

ممنون میشم ..کمک کنید مشکل کجاست

کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • شنبه 7 بهمن 1396
  • 13:29

از شما میخوام یک debugger درون تابع جاوااسکریپتی قرار بدید تا بررسی آیا این تابع فراخوانی می شود یا خیر.

زمانی از تابع change استفاده می کنید باید element شما تغییر کند تا فراخوانی شود. برای همین هنگام بار گذاری صفحه باید آن را صدا بزنیم.

به این صورت:


$('#rdbTyoe').change();
$('#rdbTyoe').change(function () { /* more code */ };

کاربر سایت

oak

عضویت از 1394/06/03

  • شنبه 7 بهمن 1396
  • 16:50

سلام ..نه فراخوانی نمیشه!!!!!!

کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • شنبه 7 بهمن 1396
  • 17:01

کاری که گفتم رو انجام بدید درست میشه

کاربر سایت

oak

عضویت از 1394/06/03

  • شنبه 7 بهمن 1396
  • 17:07

انجام دادم 


<script src="~/lib/jquery/dist/jquery.js"></script>
<script type="text/javascript">
    $('#rdbTyoe').change();
    
  $('#rdbTyoe').change(function () {
                jQuery.getJSON('@Url.Action("getstatedbyid")', { id: $(this).attr('value') }, function (data) {
              //  $('#rdbCategory').empty();
                    jQuery.each(data, function (i) {

                        var option = $('<option></option>').attr("value", data[i].IdCategories).text(data[i].Title);
                        $("#rdbCategory").append(option);
                    });
                });
                });
</script>

کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • شنبه 7 بهمن 1396
  • 17:10

 باید debugger رو بزارید سپس از inspect مرورگر استفاده کنید. به این صورت:

<script type="text/javascript">
    $('#rdbTyoe').change();
     
  $('#rdbTyoe').change(function () {
                debugger;
                jQuery.getJSON('@Url.Action("getstatedbyid")', { id: $(this).attr('value') }, function (data) {
              //  $('#rdbCategory').empty();
                    jQuery.each(data, function (i) {
 
                        var option = $('<option></option>').attr("value", data[i].IdCategories).text(data[i].Title);
                        $("#rdbCategory").append(option);
                    });
                });
                });
</script>

کاربر سایت

oak

عضویت از 1394/06/03

  • شنبه 7 بهمن 1396
  • 17:29

این دیگه 

کاربر سایت

oak

عضویت از 1394/06/03

  • شنبه 7 بهمن 1396
  • 17:30

کاربر سایت

oak

عضویت از 1394/06/03

  • شنبه 7 بهمن 1396
  • 17:30

کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • شنبه 7 بهمن 1396
  • 17:32

کلمه debugger رو داخل تابع change قرار بدید.

کاربر سایت

oak

عضویت از 1394/06/03

  • شنبه 7 بهمن 1396
  • 18:06

کاربر سایت

oak

عضویت از 1394/06/03

  • شنبه 7 بهمن 1396
  • 20:22

کسی نیست ببینه مشکل کجاست ؟ یا کد بالا فرستادم نگاهی بکنه ببینه مشکل چیه ...ویزوال 2017 هستش

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)