Цитата:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <style> </style> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <script> $(function() { $('#chosenmak').change(function() { if(!this.value) return; var e = $(this).children(':selected'), td = e.closest('tr').children(); td.eq(0).html('<img src='+e.data('image')+'>'); td.eq(1).text(e.text()); td.eq(2).text(e.data('price')); }) }); </script> </head> <body> <table id="prop" border=1 width=100%> <tr> <td></td> <td></td> <td></td> <td> <select class="chosen" id="chosenmak" name="maker"> <option value="">Выберите...</option> <option data-price="300" data-image="http://iconizer.net/files/Farm-fresh/orig/car_add.png" value="1">Модель 1</option> <option data-price="500" data-image="http://www.iconsearch.ru/uploads/icons/iconslandtransport/32x32/lorrygreen.png" value="2">Модель 2</option> </select> </td> </tr> </table> </body> </html> |
laimas, cпасибо! Работает. Последний вопрос:
Как обратно скрыть картинку и цену, если выбирается значение "Выбрать" И как получить сумму, когда складывается 2+ селекта |
Как обратно скрыть картинку и цену, если выбирается значение "Выбрать"
Переписать строки 10, 11 примера так: var e = $(this).children(':selected'), td = e.closest('tr').children().slice(0, 3); if(!this.value) { td.empty(); return; } где второй параметр метода slice(0, 3) определяет число ячеек таблицы, которые надо очистить (то есть за минусом ячейки содержащей список). И как получить сумму, когда складывается 2+ селекта Я не знаю что означает "складывается 2+ селекта", что за селекты, что куда складываются.... |
Цитата:
http://jsfiddle.net/m9xra6pL/ |
Ну тогда так id="chosenmak1" не стоит делать, если селекция будет по ID, то тогда лучше так "chosenmak-1", "chosenmak-2", ... так как нужно будет определить им один обработчик, и это будет так:
$('[id|=chosenmak]').change(function()... Но если списки в одной таблице, то можно и без ID для списков: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <style> </style> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <script> $(function() { var tbl = $('#prop').find('select').change(function() { var e = $(this).children(':selected'), td = e.closest('tr').children().slice(0, 3), sum = 0; if(!this.value) td.empty(); else { td.eq(0).html('<img src='+e.data('image')+'>'); td.eq(1).text(e.text()); td.eq(2).text(e.data('price')); } $.each(tbl.find('td:nth-child(3)'), function() { sum += this.innerHTML*1; }) $('#total').text(sum); }).end(); }); </script> </head> <body> <table id="prop" border=1 width=100%> <tr> <td></td> <td></td> <td></td> <td> <select class="chosen" name="maker"> <option value="">Выберите...</option> <option data-price="300" data-image="http://iconizer.net/files/Farm-fresh/orig/car_add.png" value="1">Модель 1</option> <option data-price="500" data-image="http://www.iconsearch.ru/uploads/icons/iconslandtransport/32x32/lorrygreen.png" value="2">Модель 2</option> </select> </td> </tr> <tr> <td></td> <td></td> <td></td> <td> <select class="chosen" name="maker"> <option value="">Выберите...</option> <option data-price="300" data-image="http://iconizer.net/files/Farm-fresh/orig/car_add.png" value="1">Модель 1</option> <option data-price="500" data-image="http://www.iconsearch.ru/uploads/icons/iconslandtransport/32x32/lorrygreen.png" value="2">Модель 2</option> </select> </td> </tr> </table> <div id="total"></div> </body> </html> где значение 3 в nth-child(3) указывает на порядковый номер (не индекс в наборе!) элемента TD в своем родителе TR. В данном случае это ячейка содержащая цену. Вот только как это понять, что у обоих списков одно и тоже имя? Ведь при отправке такой формы сервер получит значение последнего из списков. Чтобы получить значения обоих имена списков дожлны отражать массив - name="maker[]". Но в этом случае возникает вопрос - почему один и тот же ключ (maker) имеет два набора? Ведь, если первый список, это одни товары, а второй, это другие товары, и имена списков одинаковы, то значения ID каждого списка должны быть уникальны. Если они не уникальны, и каждый список это разные товары, то имена списков должны быть разные. |
laimas, да, вы верно подметили с maker, я забыл изменить на другое имя.
Вот мы получили нужные нам значение в td, а теперь как эти данные передать в таблицу? Пишу так: INSERT INTO Configuration SET `Processor` = ' ".$_POST['maker']." а как передать стоимость и картинку - не понимаю. В столбец Processor будут записываться данные вида : Тесттест, 200руб. Потом как-то надо это разделить, чтобы вывести данные для просмотра или редактирования |
а как передать стоимость и картинку - не понимаю.
А что цену товара и его изображение определяет клиент, а не сервер, на котором в базе по ID полученным из списков как раз и храниться и цена этого товара, и имя изображения? Это кто клиенту отдавал: echo '<option data-price="'.$value['Price'].'" data-image="'.PATH_IMAGE.$value['photo'].'" value="'.$value['ID'].'">'.$value['Manufacture']." ".$value['Model'].'</option>'; сервер? А если сервер, то нахрена же получать от клиента это, если он и без него эти параметры знает? |
laimas, подставляю ещё ".$value['Price']." или $_POST[$value['Price']] в INSERT, но пустоту записывает...
Аааа. Понял. Мы передали id, чтобы спарсить информацию( товара по айдишнику. Но передается просто число. Это через GROUP BY или JOIN делается? |
Цитата:
|
kostyanet, так я хотел запросом записать в столбец. Используя Insert, а перечислять параметры через запятую.
Иначе не знаю( |
Часовой пояс GMT +3, время: 04:19. |