PDA

View Full Version : سوال: استفاده از یک actionresult در event یک input number



mansoure_p
شنبه 06 اردیبهشت 1399, 18:21 عصر
من یک input از تایپ number دارم که داخل یک پیش فاکتور قرار داره ،میخوام وقتی مشتری تعداد محصول رو تایپ کرد ،جمع قیمت محصولات متناسب با تعداد محصولات تغییر کنه،این کد من هست.


<td>

<input type="number" id="inputnumber" value="@item.ProductCount" min="0" style="width: 70px;"
onchange="ChangeCount(@item.ProductId)">

</td>


و این کنترلر من هست.


public ActionResult InputNumber(int id)
{
List<ShowShoppingCart> shopcart = new List<ShowShoppingCart>();
List<ShopCartItem> shop = Session["ShoppingCart"] as List<ShopCartItem>;
int index = shop.FindIndex(s => s.ProductId == id);
shop[index].ProductCount = shopcart.Count;
if (shop[index].ProductCount == 0)
{
shop.Remove(shop[index]);
}
Session["ShoppingCart"] = shop;
return RedirectToAction("Index");

}


و اینها هم کلاسها هستن:



public class ShowShoppingCart
{
[Key]
public int ProductId { get; set; }
[Display(Name ="نام محصول")]
public string ProductTitle { get; set; }
[Display(Name = "تعداد")]
public int ProductCount { get; set; }
[Display(Name = "مبلغ")]
public int? ProductPrice { get; set; }
[Display(Name = "جمع ")]
public int? Sum { get; set; }
[Display(Name = "جمع با تخفیف ")]
public int? SumWithDiscount { get; set; }
[Display(Name = "جمع کل ")]
public int? TotalSum { get; set; }
[Display(Name = "جمع کل با تخفیف ")]
public int? TotalsumWithDiscount { get; set; }

public int DiscountPercent { get; set; }
}




public class ShopCartItem
{
public int ProductId { get; set; }
public int ProductCount { get; set; }
}




@section Script
{

<script type="text/javascript">
function ChangeCount(id) {
$(document).ready(function () {
$.ajax({
url: "/ShoppingCart/InputNumber",
type: "Get",
data: { id: id }

}).done(function (result) {
$('#CountShopCart').html(result);
//$('#inputnumber').html(result);
});
});
}
</script>

}


وقتی عددی رو تایپ میکنم هیچ اتفاقی نمیفته ؟ چرا؟

mohsen.j1990
یک شنبه 07 اردیبهشت 1399, 12:45 عصر
سلام
شما باید از Jquery Ajax استفاده کنید و اینکه به طور مستقیم در رویداد یک المان اکشن فراخونی کنید اشتباهه

mansoure_p
یک شنبه 07 اردیبهشت 1399, 15:04 عصر
سلام
شما باید از Jquery Ajax استفاده کنید و اینکه به طور مستقیم در رویداد یک المان اکشن فراخونی کنید اشتباهه

میشه لطفا راهنمایی کنید؟ ممنون

mohsen.j1990
سه شنبه 09 اردیبهشت 1399, 14:46 عصر
شما برای محاسبه جمع قیمت اصلا نیازی ندارید که کد سمت سرور بنویسید
میتونید با jquery سمت ui محاسبش کنید

mansoure_p
چهارشنبه 10 اردیبهشت 1399, 10:45 صبح
شما برای محاسبه جمع قیمت اصلا نیازی ندارید که کد سمت سرور بنویسید
میتونید با jquery سمت ui محاسبش کنید
مشکل من انجاست که نمیدونم تعداد کالا ها رو چطوری ثبت کنم؟ تعداد کالاها وقتی که عوضش میکنم هیچ تغییری نمیکنه:ناراحت::ناراحت:

mohsen.j1990
چهارشنبه 10 اردیبهشت 1399, 14:03 عصر
آیدی تگرامتونو بفرستید تا مشکل رو دقیقتر توضیح بدبد

mansoure_p
پنج شنبه 11 اردیبهشت 1399, 15:25 عصر
آیدی تگرامتونو بفرستید تا مشکل رو دقیقتر توضیح بدبد

براتون یک پیام فرستادم

mansoure_p
چهارشنبه 17 اردیبهشت 1399, 13:59 عصر
من این اسکریپت رو نوشتم ولی وقتی مقدار یک input رو تغییر میدم،مقدار جمع تمام سطرها تغییر میکنه،در حالی که من میخوام وقتی کاربر مقداری رو به عنوان تعداد محصول وارد کرد،جمع هزینه های مربوط به همون محصول در همون سطر نمایش داده بشه. این اسکریپت من هست.
function MySum() {

$('.input').each(function () {
var percent = $('.productDiscount').attr("value");
var price = $('.productPrice').attr("value");
var productcount = document.getElementById('count').value;
var sum = productcount * price;
var sumwithdiscount = sum - ((sum * percent) / 100);

$('.Sum').html(sum);

$('.SumWithDiscount').html(sumwithdiscount);
});