PDA

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