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

maxi2013

Мой дом здесь!
Регистрация
9 Янв 2013
Сообщения
511
Реакции
217
Делаю магазин на опенкарте. На странице оформления заказа добавил скрипт:
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 ) . Изюминка в том что когда человек оформляет заказ, то при выборе города появляется поле Доставка и Оплата ну и там + еще нюансы. Так вот заказ оформил. Его данные по поводу города, доставки, оплаты сохранены. При повторном заказе он заходит на страницу оформления заказа. И уже город выбран автоматически (который указывал при первом заказе), а все остальные поля скрыты(доставка, адрес, оплата), хотя про них тоже уже вся инфа есть. Так вот как сделать чтобы при повторном заказе, когда человек заходит на страницу оформления заказа, чтобы отображались все те поля которые он первоначально заполнял, а не были скрыты.
Хоть в скрипте и написано,что если выбираю город, то появляются поля. А тут получается что при повторном заказе на странице оформления заказа город уже стоит(тоесть город выбран), а вот остальных полей почему-то нет (какое-то противоречие скрипту).
Подскажите, Где копать?
 
Последнее редактирование:
ну во первых дайте ссылку на Ваш сайт, там куча нюансов может связанная с другими скриптами установленными
и где в Вашем скрипте стоит обработка ситуации когда город был выбран
я вижу только событие change которое наступает при изменении заданного элемента формы
 
К сожалению пока только все на локалке
А как сделать обработку ситуации, когда город был выбран?
Я просто не очень разбираюсь в скриптах. Так только азы слегка знаю(
 
Вы город как через PHP устанавливаете при формирование стариницы, если так то нужно стразу после
$(document).ready(function(){
написать
if(тут проверка того что город выбран)
$("#stroka4").show(); // способ доставки$("#stroka5").show(); // отделение$("#stroka6").hide(); // адрес$("#stroka7").show(); // оплата
ну это так примерно конешно, для более точного анализа мне нужно видеть сайт
 
Вот сайт-набросок. Установите себе на локальный сервер.) Проверьте пожалуйста, чтобы не было нюансов...
Там все файлы сайта и БД. Сайт называется "Cart2" и БД называется "Cart2"
Вот Для просмотра ссылки Войди или Зарегистрируйся

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

    if ($(this).val()){
     
        $("#stroka4").show(); // способ доставки
        $("#stroka6").show(); // адрес
        $("#stroka5").hide();  // отделение
        $("#stroka7").show(); // оплата

и тд
Но никакого результата(
 
Последнее редактирование модератором:
Попробуйте стразу после
$(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(); // отделение 
      
               }
         });

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

PHP:
function doIt(){
//основной код что в событии onchange
}

и добавить вызов в конец функции

PHP:
simplecheckout_init() {

...

doIt();

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