Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.03.2015, 20:32
Новичок на форуме
Отправить личное сообщение для hqfm Посмотреть профиль Найти все сообщения от hqfm
 
Регистрация: 12.03.2015
Сообщений: 7

Помогите пожалуйста!
Всем привет! Ребят, прошу помощи, т.к. не могу разобраться сам уже 3-ий день...
У меня есть калькулятор на сайте с "ползунком цены", при перемещении его меняется цена. Так вот мне нужно из этой цены передать значение value платежке Robokassa. Пробовал очень много методов и ничего не помогает. Ребята на другом форуме сказали, что это делается через javascript..

Кусок html:
<div class='price-box'>
        <div class='row'>
          <div class='col-sm-6'>
   <?
  $mrh_login = "***";
  $mrh_pass1 = "***";
  $inv_id = "0";
  $out_summ = '99';
  $inv_desc = "Оплата за раскрутку";
 $crc  = md5("$mrh_login:$out_summ:$inv_id:$mrh_pass1");
  $Email = $email;
  print
   "<html>".






                "<form class='form-horizontal form-pricing' role='form' action='https://auth.robokassa.ru/Merchant/Index.aspx' method='POST'>".


    "<input type='hidden' name='MrchLogin' value='$mrh_login'>".
    "<input type=hidden name=OutSum value=$out_summ>".
   "<input type='hidden' name='Email' value='$email'>".
   "<input type='hidden' name='InvId' value='$inv_id'>".
   "<input type='hidden' name='Desc' value='$inv_desc'>".
   "<input type='hidden' name='SignatureValue' value='$crc'>".
                  "<div class='price-slider'>".
                    "<h4 class='great'>Количество</h4>".
                    "<span class='great77' style='color:#ff0000;'>От 100 до 30000 человек</span>".
                    "<div class='col-sm-12'>".
                      "<div id='slider_amirol'></div>".
                    "</div>".
                  "</div>".



                  "<div class='price-slider'>".
                    "<h4 class='great'>Пол</h4>".
                    "<span class='great77' style='color:#ff0000;'>+30% к сумме заказа</span>".
                    "<div class='btn-group btn-group-justified'>".
                      "<div class='btn-group'>".
                        "<button type='button' class='btn btn-primary btn-block sex active-sex selected-sex' id='24sex'>Любой</button>".
                      "</div>".
                      "<div class='btn-group'>".
                        "<button type='button' class='btn btn-primary btn-block sex' id='18sex'>Мужской</button>".
                      "</div>".
                      "<div class='btn-group'>".
                        "<button type='button' class='btn btn-primary btn-block sex' id='12sex'>Женский</button>".
                      "</div>".
                    "</div>".
                  "</div>".


                  "<div class='price-slider'>".
                    "<h4 class='great'>Возраст</h4>".
                    "<span class='great77' style='color:#ff0000;'>+30% к сумме заказа</span>".
                      "<input name='sliderVal' type='hidden' id='sliderVal' value='0' readonly='readonly' />".
                "<input name='sex' type='hidden' id='sex' value='24sex' readonly='readonly' />".
                "<input name='term' type='hidden' id='term' value='quarterly' readonly='readonly' />".
                     "<div class='btn-group btn-group-justified'>".
                        "<div class='btn-group'>".
                    "<button type='button' class='btn btn-primary btn-block term active-term selected-term' id='quarterly'>Любой</button>".
                  "</div>".
                        "<div class='btn-group'>".
                          "<button type='button' class='btn btn-primary btn-block term' id='sexly'>18+</button>".
                  "</div>".
                        "<div class='btn-group'>".
                          "<button type='button' class='btn btn-primary btn-block term' id='weekly'>20+</button>".
                        "</div>".
                      "</div>".
                  "</div>".
              "</div>".
              "<div class='col-sm-6'>".
                "<div class='price-form'>".

                  "<div class='form-group'>".
                      "<div class='row'>".
                        "<div class='col-sm-6'>".
                          "<label for='amount_amirol' class='control-label'>Цена (руб.): </label>".
                          "<span class='help-text'>С учетом НДС 18%</span>".
                        "</div>".
                        "<div class='col-sm-6'>".
                            "<input type='hidden' id='amount_amirol' class='form-control'>".
                            "<!-- <p class='price lead' id='total'></p> -->".
                            "<input class='price lead' name='totalprice' type='text' disabled='disabled' id='total' style='' />".
                        "</div>".
                    "</div>".
                    "</div>".

                    "<p>&nbsp;</p>".


                    "<div class='form-group'>".
                      "<div class='row'>".
                        "<div class='col-sm-5'>".
                          "<label for='amount_amirol' class='control-label'>Ссылка: </label>".
                          "<span class='help-text'>С учетом НДС 18%</span>".
                        "</div>".
                        "<div class='col-sm-7'>".
                            "<input type='hidden' id='amount_amirol' class='form-control'>".
                            "<!-- <p class='price lead' id='total'></p> -->".
                            "<input type='text' class='form-control' name='link' placeholder='http://vk.com/team' />".
                        "</div>".
                    "</div>".
                    "</div>".



                    "<div class='form-group'>".
                      "<div class='row'>".
                        "<div class='col-sm-5'>".
                          "<label for='amount_amirol' class='control-label'>E-mail: </label>".
                          "<span class='help-text'>С учетом НДС 18%</span>".
                        "</div>".
                        "<div class='col-sm-7'>".
                            "<input type='hidden' id='amount_amirol' class='form-control'>".
                            "<!-- <p class='price lead' id='total'></p> -->".
                            "<input type='text' class='form-control' name='email' placeholder='mail@mail.ru' />".
                        "</div>".
                    "</div>".
                    "</div>".
                    

                    "<p>&nbsp;</p>".



                   
                    "<div style='margin-top:30px'></div>".
                    "<hr class='style'>".

                  "<div class='form-group'>".
                      "<div class='col-sm-12'>".
                        "<button type='submit' class='btn btn-success btn-lg btn-block'>Оплатить <span class='glyphicon glyphicon-chevron-right'></span></button>".
                      "</div>".
                  "</div>".
                    "<div class='form-group'>".
                      "<div class='col-sm-12'>".
                          "<img src='https://github.com/AmirolAhmad/Bootstrap-Calculator/blob/master/images/payment.png?raw=true' class='img-responsive payment' />".
                      "</div>".
                    "</div>".

                  "</div>".
"</div>".
                "</form></html>";
?>





          </div>
          </div>
          </div>
Ответить с цитированием
  #2 (permalink)  
Старый 12.03.2015, 20:32
Новичок на форуме
Отправить личное сообщение для hqfm Посмотреть профиль Найти все сообщения от hqfm
 
Регистрация: 12.03.2015
Сообщений: 7

Кусок JS:
<script type="text/javascript">
// JavaScript Document
var p = {

    0: "100",
    1: "1000",
    2: "2000",
    3: "3000",
    4: "4000",
    5: "5000",
    6: "6000",
    7: "7000",
    8: "8000",
    9: "9000",
    10: "10000",
    11: "11000",
    12: "12000",
    13: "13000",
    14: "14000",
    15: "15000",
    16: "16000",
    17: "17000",
    18: "18000",
    19: "19000",
    20: "20000",
    21: "21000",
    22: "22000",
    23: "23000",
    24: "24000",
    25: "25000",
    26: "26000",
    27: "27000",
    28: "28000",
    29: "29000",
    30: "30000",

};

var t = {

    0: "99",
    1: "390",
    2: "780",
    3: "1170",
    4: "1560",
    5: "1950",
    6: "1990",
    7: "2320",
    8: "2650",
    9: "2980",
    10: "3310",
    11: "3430",
    12: "3740",
    13: "4050",
    14: "4360",
    15: "4680",
    16: "4680",
    17: "4970",
    18: "5260",
    19: "5550",
    20: "5850",
    21: "5730",
    22: "6000",
    23: "6270",
    24: "6550",
    25: "6820",
    26: "6590",
    27: "6840",
    28: "7090",
    29: "7350",
    30: "7600",



}

var obj = {
    '24sex' : {
        'quarterly' : '1',
        'sexly' : '1.3',
        'weekly' : '1.3'
    },
    '18sex' : {
        'quarterly' : '1.3',
        'sexly' : '1.6',
        'weekly' : '1.6'
    },
    '12sex' : {

        'quarterly' : '1.3',
        'sexly' : '1.6',
        'weekly' : '1.6'
    }
};

$(document).ready(function() {

    $("#total").val("10000");

    

    $("#slider_amirol").slider({
        range: "min",
        animate: true,

        min: 0,
        max: 30,
        step: 1,
        slide: 
            function(event, ui) 
            {
                update(1,ui.value); //changed
                calcualtePrice(ui.value);
            }
    });

    $('.sex').on('click',function(event) {
        var id = $(this).attr('id');

        $('.sex').removeClass('selected-sex');
        $(this).addClass('selected-sex');
        $(".sex").removeClass("active-sex");
        $(this).addClass("active-sex");

        $('#sex').val(id);

        calcualtePrice()
    });

    $('.term').on('click',function(event) {
        var id = $(this).attr('id');

        $('.term').removeClass('selected-term');
        $(this).addClass('selected-term');
        $(".term").removeClass("active-term");
        $(this).addClass("active-term");
        $('#term').val(id);

        calcualtePrice()
    });

    update();
    calcualtePrice();
});
        

        
function update(slider,val) {

    if(undefined === val) val = 0;
    var amount = p[val];

    $('#sliderVal').val(val);

    $('#slider_amirol a').html('<label><span class="glyphicon glyphicon-chevron-left"></span><span style="font-size:18px; color:#fff;"> '+amount+' </span><span class="glyphicon glyphicon-chevron-right"></span></label>');
}

function calcualtePrice(val){
    
    if(undefined === val)
        val = $('#sliderVal').val();

    var sex = $('#sex').val();
    var term = obj[sex][$('#term').val()];

    var totalPrice = t[val]*term;

    $("#total").val(totalPrice.toFixed(0));
    $("#total12").val(Math.round(((totalPrice*15/100)*100)/totalPrice).toFixed(0));
    $("#total52").val(Math.round((totalPrice)/52).toFixed(0));
}
</script>



Нужно, чтобы вот это поле: $out_summ = '99'; автоматически заменялось ценой из ползунка.

Сам калькулятор вот: http://www.like77.ru/page1
Ответить с цитированием
  #3 (permalink)  
Старый 12.03.2015, 21:08
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Значение вроде итак уже пишется в #sliderVal. Просто дай ему нужный name
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #4 (permalink)  
Старый 12.03.2015, 21:09
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Нужно, чтобы вот это поле: $out_summ = '99'; автоматически заменялось ценой из ползунка.

Это не поле а присвоение переменной $out_summ значения 99, и это РНР, JS до этого отношения не имеет и изменить ни какиим ползунком не может.
Ответить с цитированием
  #5 (permalink)  
Старый 12.03.2015, 21:35
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Значение ползунка обрабатывают две функции:

update();
calcualtePrice();

в обеих из них можно присвоить это значение полю name=OutSum. Вопрос только какое.
Ответить с цитированием
  #6 (permalink)  
Старый 12.03.2015, 21:44
Новичок на форуме
Отправить личное сообщение для hqfm Посмотреть профиль Найти все сообщения от hqfm
 
Регистрация: 12.03.2015
Сообщений: 7

Сообщение от laimas Посмотреть сообщение
Значение ползунка обрабатывают две функции:

update();
calcualtePrice();

в обеих из них можно присвоить это значение полю name=OutSum. Вопрос только какое.
Наверное вопрос все-таки, как...
Ответить с цитированием
  #7 (permalink)  
Старый 12.03.2015, 21:45
Новичок на форуме
Отправить личное сообщение для hqfm Посмотреть профиль Найти все сообщения от hqfm
 
Регистрация: 12.03.2015
Сообщений: 7

Сообщение от danik.js Посмотреть сообщение
Значение вроде итак уже пишется в #sliderVal. Просто дай ему нужный name
Дал нужное имя, но все равно ничего не происходит..
Проблема с сигнатурой.
Может быть я что-то сделал не так, мог бы поподробнее описать?

Последний раз редактировалось hqfm, 12.03.2015 в 21:47.
Ответить с цитированием
  #8 (permalink)  
Старый 12.03.2015, 21:51
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Как, как раз не проблема

$('[name=OutSum]').val(val)


что в одной что в другой функции, только РНР задает значение 99, а у ползунка от 0 до 30, если и есть то что вставить, значит так. Если же что-то с ним надо сотворить, творите.
Ответить с цитированием
  #9 (permalink)  
Старый 12.03.2015, 21:55
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от hqfm
Проблема с сигнатурой
Действительно. При изменении цены нужно же обновлять сигнатуру. Вот только для ее генерации нужен пароль. А пароль ведь клиенту в браузер не отдашь..Он же приватный? Хз как сделать по уму. В качестве костыля - аякс-обновление crc с сервера. Или отправка формы на страничку, которая создаст форму с нужными скрытыми инпутами и сама засабмитит ее (но кнопку submit все же предусмотреть для noscript).
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #10 (permalink)  
Старый 12.03.2015, 22:00
Новичок на форуме
Отправить личное сообщение для hqfm Посмотреть профиль Найти все сообщения от hqfm
 
Регистрация: 12.03.2015
Сообщений: 7

Сообщение от danik.js Посмотреть сообщение
Действительно. При изменении цены нужно же обновлять сигнатуру. Вот только для ее генерации нужен пароль. А пароль ведь клиенту в браузер не отдашь..Он же приватный? Хз как сделать по уму. В качестве костыля - аякс-обновление crc с сервера. Или отправка формы на страничку, которая создаст форму с нужными скрытыми инпутами и сама засабмитит ее (но кнопку submit все же предусмотреть для noscript).
Сама конструкция выглядит вот так:
<?


$mrh_login = "***";
$mrh_pass1 = "***";
$inv_id = "0";
$out_summ = '99';
$inv_desc = "Оплата за раскрутку";
$crc = md5("$mrh_login:$out_summ:$inv_id:$mrh_pass1");
$Email = $email;
print
"<html>".
Форма
Инпуты и тд.

Сигнатура и оплата работает, если цена задана в параметре $out_summ, поэтому и нужно ее как-то вывести из "Ползунка" JSом или PHP..
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите пожалуйста. Алексей Кован Оффтопик 1 28.09.2014 13:16
Слайдер - карусель блоков (помогите пожалуйста) Viktor.Poberezhniy Общие вопросы Javascript 3 22.07.2014 12:46
Помогите пожалуйста вычислить общую сумму katalizator Общие вопросы Javascript 15 22.03.2013 16:26
Помогите пожалуйста правильно написать скрипт raffx Events/DOM/Window 17 16.10.2012 20:31
Помогите пожалуйста девушке разобраться Feni4ka jQuery 10 26.04.2011 19:25