دسته بندی ها
17:38 1399/07/17

دریافت اطلاعات توسط Ajax و نمایش آن در input

مشخصات سوال کننده :
کاربر : DiakoAspCore     امتیاز کاربر : 37     رتبه کاربر : 20
دسته بندی : Asp.net Core Html جی کوئری

به این سوال امتیاز بدهید    2
تعداد بازدید این سوال : 5378
2 نظر
saedbfd : یعنی میخواید بعد از انتخاب کد ملی از لیست نام و نام خانوادگی از دیتابیس خونده بشه و در input ها نمایش داده بشه ؟

امتیاز کاربر : 1654   رتبه کاربر : 1   تاریخ ثبت : 06:15 1399/07/17
DiakoAspCore : بله . با تشکر

امتیاز کاربر : 37   رتبه کاربر : 20   تاریخ ثبت : 09:18 1399/07/17
پاسخ دهنده : saedbfd 01:39 1399/07/18

دریافت اطلاعات توسط Ajax و نمایش آن در input

بهتر بود اگر کدی نوشتید رو قرار بدید تا اشکالات شما رو بتونیم بررسی کنیم. چون این مشکلی که شما دارید راه حلش قدری طولانی هست. 

شما برای دریافت اطلاعات توسط ایجکس باید مراحل زیر رو انجام بدید.

  • مرحله اول این هست که باید وقتی کاربر یک کد ملی رو از لیست انتخاب میکنه در همین لحظه اطلاعات از طریق ایجکس به سرور ارسال کنید. برای این منظور باید در رویداد change لیست دستورات ایجکس رو بنویسید:
<select id='cmbMellicode'></select>
<input id='txtName' type='text' />
<input id='txtFamily' type='text' />

<script>
   $("#dropdownlist").change(function (e){
        e.preventDefault();
                 $.ajax({
                type: "post",
                url: '@Url.Action("ActionName","Controller")',
                data: { mellicode : $("cmbMellicode option:selected").Text() },

            }).done(function (res) {
                if (result.status == "success") {
                    $("#txtName").val(res.firstname);
                    $("#txtFamily").val(res.family);
                }
    });
</script>

خب در دستورات بالا وقتی کدملی از لیست انتخاب میشه همون لحظه رویداد change اجرا میشه و کدملی کاربر به سمت کنترلر ارسال میشه و پاسخی که ازسمت کنترلر برگشت داده میشه در قسمت done از دستور Ajax دریافت میشه و اطلاعات نمایش داده میشه. اما در سمت کنترلر هم باید اطلاعات رو به سمت ویو برگشت داد.

 

  • مرحله دوم دریافت اطلاعات ارسال شده از سمت View در کنترلر هست.
[httppost]
public IActionResult Action(string mellicode)
{
    var getUserInfo = _context.Users.Where(u => u.melliCode == mellicode).Select(new { firstname = u.FirstName, family = u.Family}).Single();

return Json(new (status = 'success', firstname = getUserInfo.firstname, family = getUserInfo.family ));

}

دستورات بالا هم در سمت کنترلر اجرا میشن و اطلاعات کاربر شامل نام و نام خانوادگی رو از دیتابیس استخراج میکنن و توسط دستور return Json به سمت ویو برگشت میدن. دستورات بالا ممکنه تغییرات کوچکی هم نیاز داشته باشن که چون شما هیچ گونه کدی قرار ندادید نمیشد دقیقا نوشت.

نکته : دقت کنید که متغیرهایی که به سمت ویو ارسال می کنید باید حتما حروف کوچک باشن (family و fitrstname)

موفق باشید

ویرایش شده در جمعه 18 مهر 1399 ساعت 01:40:02
به این پاسخ امتیاز بدهید    3
امتیاز: 1654 رتبه: 1
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود