Изменение html img по значению происходит из данных json, которые получают значение базы данных с некоторыми обнуляемыми полями - PullRequest
0 голосов
/ 24 августа 2011

У меня есть таблица базы данных, которая содержит следующие поля:

product_id | design_id | материал_ид | color_id | picture1 (поле имени изображения) ..

design_id, material_id и color_id - пустые поля в базе данных.

Я использую linqtosql для него.

У меня есть выпадающие списки для полей id. Раскрывающиеся списки по порядку так:

Продукт> Дизайн> Материал> Цвет

Это неразрывная линия. (да, я понял, как это сделать)

Когда я выбираю первый выпадающий элемент (элемент списка товаров), я хочу, чтобы моя фотография изменилась. Затем при выборе других выпадающих пунктов я хочу, чтобы он снова изменился. (например: после выбора продукта при выборе дизайна я хочу, чтобы он нашел изображение, которое соответствует идентификатору продукта и дизайна (который можно найти в базе данных).

Так что если product=1, design=0, material=0 и color=0, то будет отображаться изображение для этой ситуации, а если product=3, design=6, material=2 и color=9, то изображение для этого другого ситуация будет отображаться.

РЕДАКТИРОВАТЬ : теперь я могу изменить изображение, но не могу отобразить на экране только ссылку ...

Вот новый код:

JQuery

    $.getJSON('@Url.Content("~/Admin/GetPictures/")', { productId: prod, designId: des, matsid: mats, colid: col }, function (data) {
        $.each(data, function (i, c) {
            /*$("img#res").attr("src", "../../Pictures/" + c.Text).attr("alt", "../../Pictures/" + c.Text).attr("width", "100%");*/
              $("img#res").attr({ 'src': '../../Pictures/' + c.Text, 'alt': '../../Pictures/' + c.Text, 'width': '100%' });
        })
    })

1 Ответ

0 голосов
/ 23 сентября 2011

Нашел решение для этой проблемы:

Контроллер

public JsonResult GetPictures(int productId, int? designId, int? matsid, int? colid)
{
    int? d = 0;
    int? m = 0;
    int? c = 0;
    if (designId == null) { d = 0; } else if (designId != null) { d = designId; };
    if (matsid == null) { m = 0; } else if (matsid != null) { m = matsid;};
    if (colid == null) { c = 0; } else if (colid != null) { c = colid; };
    IEnumerable<SelectListItem> PictureItems = db.Pictures.Where(x => x.product_id == productId & x.design_id == d & x.material_id == m & x.color_id == c).AsEnumerable().Select(x => new SelectListItem()
    {
        Text = x.picture1,
        Value = x.id.ToString().TrimEnd() 
    });
    SelectList data = new SelectList(PictureItems, "Value", "Text");
    return Json(data, JsonRequestBehavior.AllowGet);
}

вид

$.getJSON('@Url.Content("~/Admin/GetPictures/")', { productId: prod, designId: des, matsid: mats, colid: col }, function (data) {
    $.each(data, function (i, c) {
        $("img#res").attr("src", "../../Pictures/" + c.Text).attr("alt", "../../Pictures/" + c.Text);
    })
})
...