View Full Version : سوال: خواندن اطلاعات از دیتابیس و پر کردن فرم با جاوااسکریپت
jaykob
یک شنبه 18 مرداد 1394, 16:55 عصر
سلام دوستان
من یک فرمی دارم که می خوام کاربر زمانی کد درخواست خودش رو داخل text box وارد کرد بره و اطلاعات اون رکورد که شامل تاریخ درخواست و نام و ... هست بیاره و بزاره توی تکست باکس ها یا لیبل های دیگه و این اتفاق در خاصیت change اون تکست باکس بیفته و همه فرم رو پر کنه خواهش می کنم یک مثال شفاف بزنید چون سرچ کردم هر کسی یک چیزی می گه و به نتیجه نرسیدم
تشکر از همه
HOSSEINONLINE7
یک شنبه 18 مرداد 1394, 19:48 عصر
سلام کد درخواست را با جیکوئری بخونید و از طریق ایجکس سمت سرور ارسال کنید بعد اونجا اطلاعات مورد نیاز را توی یک کلاس بریزید و پاس بدید :
$(".txtCode").change(function () {
var id = $(this).attr("Code");
$.ajax({
url: "/Home/GetData",
data: { Id: id },
type: "Post",
dataType: "Json",
success: function (result) {
$("#txtName").val(result.Name);
.............
},
error: function () {
alert("خطا!");
}
});
سمت سرور هم کلاس را پرکنید و به این شکل پاس بدید سمت کلاینت :
public Action GetData(int id)
{
..................
return json(model:data)
}
jaykob
دوشنبه 19 مرداد 1394, 07:44 صبح
سلام
خیلی ممنون از پاسختون که واقعا تازه فهمیدم چی به چی هست اما من به شکل زیر عمل کردم اما همش می ره داخل بلوک خطا و alert خطا رو نشون می ده ممنون می شم راهنمایی کنید فکر می کنم کوئری داخل اکشنم مشکلی داشته باشه :
مدل :
public class Register
{
public int Id { get; set; }
public string Name { get; set; }
public string City { get; set; }
public int CodeMelli { get; set; }
}
اکشن های من در کنترلر Register :
public ActionResult Search()
{
return View();
}
public ActionResult SearchGetData(int id)
{
var db = new MasyContext();
var Query = db.Registers.Find(id);
return Json(Query);
}
کد های View من :
@{
ViewBag.Title = "Search";
}
<h2>جستجو ثبت نامی ها</h2>
<br/>
<span>کد ثبت نام را وارد کنید</span><input type="text" id="regid"/>
<br/>
<br/>
<span>نام شما</span><input type="text" id="txtName"/>
<br/>
<span>کد ملی شما</span><input type="text" id="txtCodeMelli" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript">
$("#regid").change(function() {
var id = $(this).attr("regid");
$.ajax({
url: "/Register/SearchGetData",
data: { Id: id },
type: "Post",
dataType: "Json",
success: function(result) {
$("#txtName").val(result.Name);
$("#txtCodeMelli").val(result.CodeMelli);
},
error: function() {
alert("خطا!");
}
});
});
</script>
خیلی ممنون می شم راهنمایی کنید
HOSSEINONLINE7
دوشنبه 19 مرداد 1394, 08:38 صبح
سلام
خیلی ممنون از پاسختون که واقعا تازه فهمیدم چی به چی هست اما من به شکل زیر عمل کردم اما همش می ره داخل بلوک خطا و alert خطا رو نشون می ده ممنون می شم راهنمایی کنید فکر می کنم کوئری داخل اکشنم مشکلی داشته باشه :
مدل :
public class Register
{
public int Id { get; set; }
public string Name { get; set; }
public string City { get; set; }
public int CodeMelli { get; set; }
}
اکشن های من در کنترلر Register :
public ActionResult Search()
{
return View();
}
public ActionResult SearchGetData(int id)
{
var db = new MasyContext();
var Query = db.Registers.Find(id);
return Json(Query);
}
کد های View من :
@{
ViewBag.Title = "Search";
}
<h2>جستجو ثبت نامی ها</h2>
<br/>
<span>کد ثبت نام را وارد کنید</span><input type="text" id="regid"/>
<br/>
<br/>
<span>نام شما</span><input type="text" id="txtName"/>
<br/>
<span>کد ملی شما</span><input type="text" id="txtCodeMelli" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript">
$("#regid").change(function() {
var id = $(this).attr("regid");
$.ajax({
url: "/Register/SearchGetData",
data: { Id: id },
type: "Post",
dataType: "Json",
success: function(result) {
$("#txtName").val(result.Name);
$("#txtCodeMelli").val(result.CodeMelli);
},
error: function() {
alert("خطا!");
}
});
});
</script>
خیلی ممنون می شم راهنمایی کنید
شما سمت سرور روی اکشن و سمت کلاینت با فایرباگ بریک پوینت بزارید ببینید Request خطا چی میده .
jaykob
دوشنبه 19 مرداد 1394, 09:08 صبح
شما سمت سرور روی اکشن و سمت کلاینت با فایرباگ بریک پوینت بزارید ببینید Request خطا چی میده .
سلام
تشکر بابت پاسختون .
من برک پویت روی اکشن و کد جاوا گذاشتم اصلا جواب نمی ده فقط داخل بلوک error در کد جاوا رو به شکل زیر تغییر دادم
error: function(e) {
alert("Error: " + e.description);
}
خطای Undifined رو می ده ...
ممنون می شم تست کنید و یا راهنمایی کنید که درستش کنم
تشکر
HOSSEINONLINE7
دوشنبه 19 مرداد 1394, 09:27 صبح
سلام
تشکر بابت پاسختون .
من برک پویت روی اکشن و کد جاوا گذاشتم اصلا جواب نمی ده فقط داخل بلوک error در کد جاوا رو به شکل زیر تغییر دادم
error: function(e) {
alert("Error: " + e.description);
}
خطای Undifined رو می ده ...
ممنون می شم تست کنید و یا راهنمایی کنید که درستش کنم
تشکر
با فایرباگ باید بریک پوینت بزاریدا . همینطوری تو خود ویژوال استادیو نمیشه روی جیکوئری بریک پوینت گذاشت .
توی قسمت Console فایرباگ خطای Request را نشون میده .
jaykob
دوشنبه 19 مرداد 1394, 17:54 عصر
سلام
تشکر از پاسختون مشکل رو با بررسی با Firebug حل کردم و درست بود .
فقط یک سوال من برای dropdownlist ها یا همون کلید های خارجی که دارم به طور مثال نام بانک ها یا ... کلید خارجی هستن و من توی این جدول id اونها رو دارم می شه راهنمایی بفرمایید چطور اونها رو پر کنم به همین صورت ؟
تشکر
HOSSEINONLINE7
دوشنبه 19 مرداد 1394, 22:00 عصر
سلام
تشکر از پاسختون مشکل رو با بررسی با Firebug حل کردم و درست بود .
فقط یک سوال من برای dropdownlist ها یا همون کلید های خارجی که دارم به طور مثال نام بانک ها یا ... کلید خارجی هستن و من توی این جدول id اونها رو دارم می شه راهنمایی بفرمایید چطور اونها رو پر کنم به همین صورت ؟
تشکر
http://www.dotnettips.info/post/1076/%D8%B3%D8%A7%D8%AE%D8%AA-dropdownlist-%D9%87%D8%A7%DB%8C-%D9%85%D8%B1%D8%AA%D8%A8%D8%B7-%D8%A8%D9%87-%DA%A9%D9%85%DA%A9-jquery-ajax-%D8%AF%D8%B1-mvc
http://stackoverflow.com/questions/17727386/dropdownlist-in-mvc-4-with-razor
http://stackoverflow.com/questions/20603643/dropdown-list-in-asp-net-mvc-3
http://stackoverflow.com/questions/5326515/create-a-dropdown-list-for-mvc3-using-entity-framework-edmx-model-razor-vie
http://stackoverflow.com/questions/5128516/simple-dropdownlist-in-asp-net-mvc3-app
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.