Подвох в скрипте

Тема в разделе "JavaScript", создана пользователем maxi2013, 28 ноя 2013.

Модераторы: ZiX
  1. maxi2013

    maxi2013

    Регистр.:
    9 янв 2013
    Сообщения:
    497
    Симпатии:
    207
    Делаю магазин на опенкарте. На странице оформления заказа добавил скрипт:
    PHP:
    <script type="text/javascript">
    $(
    document).ready(function(){


        $(
    "select#checkout_customer_main_country_id").change(function(){
        $(
    "select#checkout_customer_main_country_id [value='']").remove();

        if ($(
    this).val()=="27" ){
            $(
    "#checkout_customer_custom_dostavka [value='']").remove();
            $(
    "#checkout_customer_custom_dostavka [value='1']").attr("disabled""disabled");
            $(
    "#checkout_customer_custom_dostavka [value='2']").attr("selected""selected");
            $(
    "#checkout_customer_custom_oplata [value='']").remove();
            $(
    "#stroka4").show(); // способ доставки
            
    $("#stroka6").show(); // адрес
            
    $("#stroka5").hide();  // отделение
            
    $("#stroka7").show(); // оплата
            
    }
        else    {
            $(
    "#checkout_customer_custom_dostavka [value='']").remove();
            $(
    "#checkout_customer_custom_dostavka [value='1']").attr("selected""selected");
            $(
    "#checkout_customer_custom_dostavka [value='2']").attr("disabled""disabled");
            $(
    "#checkout_customer_custom_oplata [value='']").remove();
            $(
    "#stroka4").show(); // способ доставки
            
    $("#stroka5").show(); // отделение
            
    $("#stroka6").hide(); // адрес
            
    $("#stroka7").show(); // оплата
       
            
    }
       
      });


    });
    </script>

    Суть в том что поля (доставка, адрес, оплата) я скрыл (display: none ) . Изюминка в том что когда человек оформляет заказ, то при выборе города появляется поле Доставка и Оплата ну и там + еще нюансы. Так вот заказ оформил. Его данные по поводу города, доставки, оплаты сохранены. При повторном заказе он заходит на страницу оформления заказа. И уже город выбран автоматически (который указывал при первом заказе), а все остальные поля скрыты(доставка, адрес, оплата), хотя про них тоже уже вся инфа есть. Так вот как сделать чтобы при повторном заказе, когда человек заходит на страницу оформления заказа, чтобы отображались все те поля которые он первоначально заполнял, а не были скрыты.
    Хоть в скрипте и написано,что если выбираю город, то появляются поля. А тут получается что при повторном заказе на странице оформления заказа город уже стоит(тоесть город выбран), а вот остальных полей почему-то нет (какое-то противоречие скрипту).
    Подскажите, Где копать?
     
    Последнее редактирование: 28 ноя 2013
  2. vipTelnet

    vipTelnet Постоялец

    Регистр.:
    14 янв 2013
    Сообщения:
    133
    Симпатии:
    11
    ну во первых дайте ссылку на Ваш сайт, там куча нюансов может связанная с другими скриптами установленными
    и где в Вашем скрипте стоит обработка ситуации когда город был выбран
    я вижу только событие change которое наступает при изменении заданного элемента формы
     
  3. maxi2013

    maxi2013

    Регистр.:
    9 янв 2013
    Сообщения:
    497
    Симпатии:
    207
    К сожалению пока только все на локалке
    А как сделать обработку ситуации, когда город был выбран?
    Я просто не очень разбираюсь в скриптах. Так только азы слегка знаю(
     
  4. vipTelnet

    vipTelnet Постоялец

    Регистр.:
    14 янв 2013
    Сообщения:
    133
    Симпатии:
    11
    Вы город как через PHP устанавливаете при формирование стариницы, если так то нужно стразу после
    $(document).ready(function(){
    написать
    if(тут проверка того что город выбран)
    $("#stroka4").show(); // способ доставки$("#stroka5").show(); // отделение$("#stroka6").hide(); // адрес$("#stroka7").show(); // оплата
    ну это так примерно конешно, для более точного анализа мне нужно видеть сайт
     
    maxi2013 нравится это.
  5. maxi2013

    maxi2013

    Регистр.:
    9 янв 2013
    Сообщения:
    497
    Симпатии:
    207
    Вот сайт-набросок. Установите себе на локальный сервер.) Проверьте пожалуйста, чтобы не было нюансов...
    Там все файлы сайта и БД. Сайт называется "Cart2" и БД называется "Cart2"
    Вот архив

    Я сделал вот так
    Код:
    $(document).ready(function(){
    
        if ($(this).val()){
         
            $("#stroka4").show(); // способ доставки
            $("#stroka6").show(); // адрес
            $("#stroka5").hide();  // отделение
            $("#stroka7").show(); // оплата
    
    и тд
    
    Но никакого результата(
     
    Последнее редактирование модератором: 2 дек 2013
  6. r0m41k

    r0m41k Создатель

    Регистр.:
    5 дек 2012
    Сообщения:
    15
    Симпатии:
    0
    Попробуйте стразу после
    $(document).ready(function(){
    написать
    PHP:
        $("select#checkout_customer_main_country_id").change(function(){  
          
        if ($(
    this).val().attr("selected""selected") ){
            $(
    "#stroka4").show(); // способ доставки
            
    $("#stroka6").show(); // адрес
            
    $("#stroka5").hide();  // отделение
            
    $("#stroka7").show(); // оплата
            
    }
        else    {
          
            $(
    "#stroka5").show(); // отделение 
          
                   
    }
             });

    а потом ваш код
      
     
  7. maxi2013

    maxi2013

    Регистр.:
    9 янв 2013
    Сообщения:
    497
    Симпатии:
    207
    Мне один человек подсказал сделать так, но из-за занятости сделал лишь только набросок:
    лучше всего код функции добавить в конец /catalog/view/javascript/simplecheckout.js

    PHP:
    function doIt(){
    //основной код что в событии onchange
    }
    и добавить вызов в конец функции

    PHP:
    simplecheckout_init() {

    ...

    doIt();

    }
    У меня просьба. Я в скриптах плохо разбираюсь. Если мой скрипт и этот "совет" собрать в кучу, то какой в итоге получится скрипт???