Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #61 (permalink)  
Старый 26.05.2015, 10:41
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от makalet
Вот с этим у меня и проблемы.
<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>
Ответить с цитированием
  #62 (permalink)  
Старый 26.05.2015, 10:52
Аспирант
Отправить личное сообщение для makalet Посмотреть профиль Найти все сообщения от makalet
 
Регистрация: 25.05.2015
Сообщений: 76

laimas, cпасибо! Работает. Последний вопрос:
Как обратно скрыть картинку и цену, если выбирается значение "Выбрать"
И как получить сумму, когда складывается 2+ селекта

Последний раз редактировалось makalet, 26.05.2015 в 11:01.
Ответить с цитированием
  #63 (permalink)  
Старый 26.05.2015, 11:24
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Как обратно скрыть картинку и цену, если выбирается значение "Выбрать"

Переписать строки 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+ селекта", что за селекты, что куда складываются....
Ответить с цитированием
  #64 (permalink)  
Старый 26.05.2015, 11:41
Аспирант
Отправить личное сообщение для makalet Посмотреть профиль Найти все сообщения от makalet
 
Регистрация: 25.05.2015
Сообщений: 76

Сообщение от laimas Посмотреть сообщение
Как обратно скрыть картинку и цену, если выбирается значение "Выбрать"

Я не знаю что означает "складывается 2+ селекта", что за селекты, что куда складываются....
Ну в плане того, чтобы посчитать сумму стоимости.
http://jsfiddle.net/m9xra6pL/
Ответить с цитированием
  #65 (permalink)  
Старый 26.05.2015, 12:51
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Ну тогда так 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 каждого списка должны быть уникальны.

Если они не уникальны, и каждый список это разные товары, то имена списков должны быть разные.
Ответить с цитированием
  #66 (permalink)  
Старый 26.05.2015, 12:58
Аспирант
Отправить личное сообщение для makalet Посмотреть профиль Найти все сообщения от makalet
 
Регистрация: 25.05.2015
Сообщений: 76

laimas, да, вы верно подметили с maker, я забыл изменить на другое имя.
Вот мы получили нужные нам значение в td, а теперь как эти данные передать в таблицу?
Пишу так:
INSERT INTO Configuration SET `Processor` = ' ".$_POST['maker']."
а как передать стоимость и картинку - не понимаю.
В столбец Processor будут записываться данные вида : Тесттест, 200руб. Потом как-то надо это разделить, чтобы вывести данные для просмотра или редактирования
Ответить с цитированием
  #67 (permalink)  
Старый 26.05.2015, 13:06
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

а как передать стоимость и картинку - не понимаю.

А что цену товара и его изображение определяет клиент, а не сервер, на котором в базе по ID полученным из списков как раз и храниться и цена этого товара, и имя изображения?

Это кто клиенту отдавал:

echo '<option data-price="'.$value['Price'].'" data-image="'.PATH_IMAGE.$value['photo'].'" value="'.$value['ID'].'">'.$value['Manufacture']." ".$value['Model'].'</option>';

сервер? А если сервер, то нахрена же получать от клиента это, если он и без него эти параметры знает?
Ответить с цитированием
  #68 (permalink)  
Старый 26.05.2015, 13:12
Аспирант
Отправить личное сообщение для makalet Посмотреть профиль Найти все сообщения от makalet
 
Регистрация: 25.05.2015
Сообщений: 76

laimas, подставляю ещё ".$value['Price']." или $_POST[$value['Price']] в INSERT, но пустоту записывает...
Аааа. Понял. Мы передали id, чтобы спарсить информацию( товара по айдишнику.
Но передается просто число. Это через GROUP BY или JOIN делается?

Последний раз редактировалось makalet, 26.05.2015 в 13:20.
Ответить с цитированием
  #69 (permalink)  
Старый 26.05.2015, 13:19
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от makalet
В столбец Processor будут записываться данные вида : Тесттест, 200руб.
Я поцтулам. :-D В ява-скрипте оне не понимают.
Ответить с цитированием
  #70 (permalink)  
Старый 26.05.2015, 13:22
Аспирант
Отправить личное сообщение для makalet Посмотреть профиль Найти все сообщения от makalet
 
Регистрация: 25.05.2015
Сообщений: 76

kostyanet, так я хотел запросом записать в столбец. Используя Insert, а перечислять параметры через запятую.
Иначе не знаю(
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
функция отправки изображений как отправить и данные из селекта imedia Элементы интерфейса 1 25.08.2014 13:03
Как получить в JQUERY каждую строку как отдельный объект? Alex1233 Общие вопросы Javascript 3 22.08.2014 06:54
Как получить значение переменной из игры на HTML5? Dimaz Общие вопросы Javascript 6 10.08.2014 16:27
Как получить значения вышестоящих элементов дерева TreeStore ? Allan Stark ExtJS 1 31.07.2012 16:48
получить данные из store, как ? maslks ExtJS 5 14.10.2009 16:45