Последние темы


В корзине не выводится метод и стоимость доставки.

  • Добрый вечер!
    На страниц оформления заказа не выводится метод и стоимость доставки.
    Прочитал схожий вопрос ответа не нашел.http://forum.modx-shopkeeper.ru/topic/228/не-проставляется-наименование-доставки-и-способ-оплаты-при-выборе

    В шаблон страницы оформления заказа вставил скрипт.

       <!doctype html>
    <html lang="en">
      <head>
        <!-- Required meta tags -->
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    
        <!-- Bootstrap CSS -->
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" integrity="sha384-WskhaSGFgHYWDcbwN70/dfYBj47jz9qbsMId/iRN3ewGhXQFZCSftd1LZCfmhktB" crossorigin="anonymous">
        <link rel="stylesheet" href="/css/test1.css" type="text/css" media="screen" />
        <title>Bootstrap test template</title>
        <script src="/css/test1.js"></script>
    
    
    
    [[$Header]]
      </head>
    
      <body>
    [[$Navbar]]
    
    
    
    <div class="container-fluid" style="padding:5%">
    	
    	<div class="row">
    		<div class="col-md-12">
    		    <h1>Оформление заказа</h1>
    		    [[!Shopkeeper3@new_cart?propertySetName='new_cart']]
    		</div>
    	</div>
    	
    	<div class="row" >
    	    <div class="col-md-12">            
                [[!AjaxForm?
                &snippet=`FormIt`
                &form=`MeFullShopOrderForm-AJAX`
                &hooks=`spam,shk_fihook,email,FormItAutoResponder,redirect`          
                &formName=`Новый заказ с сайта`
                &validate=`fullname:required,email,phone:required`
                ]]                      
            </div>
        </div>
        
        <script type="text/javascript">
            $(document).bind('ready',function(){
                if ( SHK.data.delivery_name ) {
                    $('select[name="shk_delivery"]','#MeFullShopOrderForm-AJAX').val( SHK.data.delivery_name );
                }
                $('select[name="shk_delivery"]','#MeFullShopOrderForm-AJAX').bind('change',function(){
                    SHK.selectDelivery( $(this).val() );
                });
            });
        </script>
        
        
    </div>	    
    
    
    [[$Footer]]
    
        <!-- Optional JavaScript -->
        <!-- jQuery first, then Popper.js, then Bootstrap JS -->
        <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
        <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js" integrity="sha384-smHYKdLADwkXOn1EmN1qk/HfnUcbVRZyYmZ4qpPea6sjB/pTJ0euyQp0Mk8ck+5T" crossorigin="anonymous"></script>
        <script src="css/test1.js"></script>
      </body>
    </html>
    

    Форму реализовал по примеру
    В чем может быть проблема?

  • Код формы покажите? Вообще сначала хорошо бы попробовать настроить форму без AjaxForm. А уже после того как убедитесь, что всё работает начинать навешивать другие сниппеты.

  • @Andchir
    Пробовал без AjaxForm, та же история.

    Покажу...

    [[!shkOptions?
    &get=`delivery,payments`
    &post_name=`shk_delivery,payment`
    &toPlaceholders=`1`
    &pl_prefix=`shkopt_`
    &tpl=`MeFullSelect_option`
    ]]
    
    <p class="error">[[!+fi.error.error_message]]</p>
    <br />
    
    <form method="post" action="[[~[[*id]]]]" class="ajax_form" id="shopOrderFormAJAX">
    
        <fieldset>
        
        <input type="text" name="nospam:blank" value="" class="displayoff" />
        <input type="hidden" name="order" value="1" />
            
                <div class="displayoff">
                	<label>Имя</label>
                	<input class="form-control" name="user" placeholder="" type="text" >
                </div>
                <div class="form-group displayoff">
                	<label>Имя</label>
                	<input class="form-control" name="username" placeholder="" type="text">
                </div>
            
        
            <div class="row" >
            	    <div class="col-md-12">
                        <h2>Выберите способ доставки</h2></br>
    
                    </div>
            </div>
        	<div class="row">
            		<div class="col-md-4">
                        <div class="opt_delivery">
                        	<!--<span>Выберите способ доставки</span><br>-->
                        		[[!+shkopt_delivery]]
                        </div>
        		    </div>
            		<div class="col-md-8">
                		<script type="text/javascript" charset="utf-8" async src="https://api-maps.yandex.ru/services/constructor/1.0/js/?um=constructor%3Ac6727a746335ce190536b9e8f677ff2c26e02bd6319d9d36555ef4e182340767&amp;width=100%25&amp;height=430&amp;lang=ru_RU&amp;scroll=true"></script>
            		</div>
        	</div>
        	
    
            <div class="row" >
            	    <div class="col-md-12">
                        <h2>Введите данные</h2></br>
                        <h3>Заказчика</h3></br>
                    </div>
            </div>
        	
            <div class="row"> 
            
                    <div class="col-md-4 col-xs-12">
                        <label for="InputName">Имя</label>
                            <div class="form-group">
                					<input name="fullname" type="text" class="form-control" id="InputName" value="[[!+fi.fullname:default=`[[+modx.user.id:userinfo=`fullname`]]`:ne=`0`:show]]" />
                					<div>[[!+fi.error.fullname]]</div>
                	        </div>
                	</div>
                
                	<div class="col-md-4 col-xs-12">
                        <label for="InputPhone">Телефон</label>
                            <div class="form-group">
                					<input name="phone" type="text" class="form-control" id="InputPhone" value="[[!+fi.phone:default=`[[+modx.user.id:userinfo=`phone`]]`:ne=`0`:show]]" />
                					<div>[[!+fi.error.phone]]</div>
                	        </div>
                	</div>
                	
                    <div class="col-md-4 col-xs-12">
                        <label for="InputEmail">Email</label>
                            <div class="form-group">
                					<input name="email" type="text" class="form-control" id="InputEmail" value="[[!+fi.address:default=`[[+modx.user.id:userinfo=`address`]]`:ne=`0`:show]]" />
                					<!--<div>[[!+fi.error.email]]</div>-->
                	        </div>
                	</div>
            </div>
            
            <div class="row" >
            	    <div class="col-md-12">
                        <h3>Получателя</h3></br>
                        
                        <input type="checkbox" name="delivertome_checkbox">Я получатель
                        
            <div class="row"> 
                    <div class="col-md-4 col-xs-12">
                        <label for="InputName">Имя</label>
                            <div class="form-group">
                					<input name="deliveryname" type="text" class="form-control" id="InputDeliveryName" value="[[!+fi.deliveryname:default=`[[+modx.user.id:userinfo=`deliveryname`]]`:ne=`0`:show]]" />
                					<div>[[!+fi.error.deliveryname]]</div>
                	        </div>
                	</div>
                    <div class="col-md-4 col-xs-12">
                        <label for="InputName">Телефон</label>
                            <div class="form-group">
                					<input name="deliveryphone" type="text" class="form-control" id="InputDeliveryPhone" value="[[!+fi.deliveryphone:default=`[[+modx.user.id:userinfo=`deliveryphone`]]`:ne=`0`:show]]" />
                					<div>[[!+fi.error.deliveryphone]]</div>
                	        </div>
                	</div>
                    <div class="col-md-4 col-xs-12">
                        <label for="InputName">Адрес</label>
                            <div class="form-group">
                					<input name="deliveryadress" type="text" class="form-control" id="InputDeliveryAfress" value="[[!+fi.deliveryadress:default=`[[+modx.user.id:userinfo=`deliveryadress`]]`:ne=`0`:show]]" />
                					<div>[[!+fi.error.deliveryadress]]</div>
                	        </div>
                	</div>
            </div>
            
            <div class="row">
                	<div class="col-md-12">
                    
                        <div class="opt_payment" align="center">
                            <h2>Выберите способ оплаты</h2></br>
                            		[[!+shkopt_payments]]
                        </div>
                    </div>
            </div>
            
            <div class="row" >
                <div class="col-md-12" align="center">
                     <button  id="submit_button" disabled="true" >Отправить</button><br>
                     
                     <label><input type="hidden" name="soglasie[]" value="">
                        <input type="checkbox"  name="soglasie[]" value="согласие"  
                        [[!+fi.soglasie:FormItIsChecked=`soglasie`]] onclick="showHide('soglasie-input');" >
                        Согласен с политикой<a href="#"> обработки персональных данных</a>
                    </label>
                </div>
    
                     <!--<button id="submit_button" type="submit" class="button" value="Отправить" >Отправить</button><br>-->
                     
            </div>
            
        </fieldset>
    
    </form>
    
    
    
    1. Нужно показать скриншот, что у вас эти данные есть.
    2. Нужно показать полный шаблон.

    Пробовал без AjaxForm, та же история

    Как вы это пробовали я должен сам представить или обратиться к экстрасенсам?

    1. Что находится в чанке "MeFullSelect_option"?
  • @Andchir

    1. Скриншот с какими данными необходим?

    2. Шаблон страницы оформления заказа

    <!doctype html>
    <html lang="en">
      <head>
        <!-- Required meta tags -->
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    
        <!-- Bootstrap CSS -->
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" integrity="sha384-WskhaSGFgHYWDcbwN70/dfYBj47jz9qbsMId/iRN3ewGhXQFZCSftd1LZCfmhktB" crossorigin="anonymous">
        <link rel="stylesheet" href="/css/test1.css" type="text/css" media="screen" />
        <title>Bootstrap test template</title>
    
    [[$Header]]
      </head>
    
      <body>
    [[$Navbar]]
    
    <div class="container-fluid" style="padding:5%">
    	
    	<div class="row">
    		<div class="col-md-12">
    		    <h1>Оформление заказа</h1>
    		    [[!Shopkeeper3@new_cart?propertySetName='new_cart']]
    		</div>
    	</div>
    	
    	<div class="row" >
    	    <div class="col-md-12">
                
                [[!AjaxForm?
                &snippet=`FormIt`
                &form=`MeFullShopOrderForm-AJAX`
                &hooks=`spam,shk_fihook,email,FormItAutoResponder,redirect`
                &submitVar=`order`
                &emailTpl=`contactEmail`
                &fiarTpl=`contactEmail`
                &emailSubject=`Ваш заказ № [[+orderID]] принят в работу! [[++site_name]]`
                &fiarSubject=`Ваш заказ № [[+orderID]] принят в работу! [[++site_name]]`
                &emailTo=`[[+email]],[[++emailsender]]`
                &fiarReplyTo=`[[+email]],[[++emailsender]]`
                &fiarToField=`email`
                &emailFrom=`[[++emailsender]]`
                &emailReplyTo=`[[++emailsender]]`
                &formName=`Новый заказ с сайта`
                &validate=`fullname:required,email,phone:required`
                ]]
                
            </div>
        </div>
        
        <script type="text/javascript">
            $(document).bind('ready',function(){
                if ( SHK.data.delivery_name ) {
                    $('select[name="shk_delivery"]','#MeFullShopOrderForm-AJAX').val( SHK.data.delivery_name );
                }
                $('select[name="shk_delivery"]','#MeFullShopOrderForm-AJAX').bind('change',function(){
                    SHK.selectDelivery( $(this).val() );
                });
            });
        </script>
        
        
    </div>	    
    
    
    [[$Footer]]
    
    
        <!-- Optional JavaScript -->
        <!-- jQuery first, then Popper.js, then Bootstrap JS -->
        <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
        <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js" integrity="sha384-smHYKdLADwkXOn1EmN1qk/HfnUcbVRZyYmZ4qpPea6sjB/pTJ0euyQp0Mk8ck+5T" crossorigin="anonymous"></script>
        <script src="css/test1.js"></script>
    
    
      </body>
    </html>
    
    
    1. Чанк "MeFullSelect_option"
    <label class="op_[[+name]]">
    <div>
    <!--<div style="width:350px; height:100%; border:1px solid black">-->
    <input name="[[+name:is=`delivery`:then=`shk_delivery`:else=`payment`]]" type="radio" value="[[+value]]" [[+checked]] ><span>
        <strong>[[+label]]</strong>
    
    	[[+value:is=`Доставка курьером`:then=`<i class="fa fa-truck" aria-hidden="true"></i>
    	            <strong>[[+label]]</strong><br>
            		Границы зон доставки можно посмотреть на карте.<br>
            		График доставки заказов:<br>
            		пн-пт 9:00 -21:00<br>
            		сб-вс 11:00-19:00<br>`]]
    	[[+value:is=`Самовывоз`:then=`<i class="fa fa-archive" aria-hidden="true"></i>
    	            <strong>[[+label]]</strong><br>
            		Точка самовывоза отмечена на карте.<br>
            		пн-вс 10:00-20:00<br>`]]
            		
    	[[+value:is=`Наличными`:then=`
    	<div style="width:250px; height:100px; border:1px solid black">
    	<i class="fa fa-rub" aria-hidden="true"></i>
    	            <strong>[[+label]]</strong><br></div>`]]
    	[[+value:is=`Оплата на сайте`:then=`
    	<div style="width:250px; height:100px; border:1px solid black">
    	<i class="fa fa-credit-card" aria-hidden="true"></i>
    	            <strong>[[+label]]</strong><br></div>`]]
    	[[+value:is=`Перевод на карту`:then=`
    	<div style="width:250px; height:100px; border:1px solid black">
    	<i class="fa fa-tablet" aria-hidden="true"></i>
    	            <strong>[[+label]]</strong><br></div>`]]
    	            
    	</div></span>
    </label>
    
  • Шаблон страницы оформления заказа

    Я просил код как вы пробовали без AjaxForm.

    Скриншот с какими данными необходим?

    Скриншот с данными, которые вы хотите вывести с помощью сниппета "shkOptions".

    Но, глядя на код чанка "MeFullSelect_option", я не понимаю зачем вообще вам нужен сниппет "shkOptions", если все данные находятся в этом чанке. Можно просто в форму вставить статичный код с выбором доставки.

  • @Andchir

    Шаблон страницы оформления заказа без AjaxForm

    <!doctype html>
    <html lang="en">
      <head>
        <!-- Required meta tags -->
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    
        <!-- Bootstrap CSS -->
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" integrity="sha384-WskhaSGFgHYWDcbwN70/dfYBj47jz9qbsMId/iRN3ewGhXQFZCSftd1LZCfmhktB" crossorigin="anonymous">
        <link rel="stylesheet" href="/css/test1.css" type="text/css" media="screen" />
        <title>Bootstrap test template</title>
    
    
    
    [[$Header]]
      </head>
    
      <body>
    [[$Navbar]]
    
    
    
    <div class="container-fluid" style="padding:5%">
    	
    	<div class="row">
    		<div class="col-md-12">
    		    <h1>Оформление заказа</h1>
    		    [[!Shopkeeper3@new_cart?propertySetName='new_cart']]
    		</div>
    	</div>
    
    	
    	<div class="row" >
    	    <div class="col-md-12">
    
    
                [[!FormIt?
                &hooks=`spam,shk_fihook,email,FormItAutoResponder,redirect`
                &submitVar=`order`
                &emailTpl=`shopOrderReport`
                &fiarTpl=`shopOrderReport`
                &emailSubject=`В интернет-магазине "[[++site_name]]" сделан новый заказ`
                &fiarSubject=`Вы сделали заказ в интернет-магазине "[[++site_name]]"`
                &emailTo=`[[++emailsender]]`
                &fiarReplyTo=`[[++emailsender]]`
                &fiarToField=`email`
                &emailFrom=`[[++emailsender]]`
                &emailFromName=`[[++emailsender]]`
                &fiarFrom=`[[++emailsender]]`
                &redirectTo=`23`
                &validate=`fullname:required,email,phone:required`
                &errTpl=`<br /><span class="error">[[+error]]</span>`
                ]]
                
                [[-[[!$MeFullShopOrderForm?]] ]]
                [[!$shopOrderForm?]]
                
                <br>[[+delivery_name]]
                <br>[[+delivery_price]] [[+currency]]
            </div>
        </div>
                    
    <script type="text/javascript">
    $(document).bind('ready',function(){
        if ( SHK.data.delivery_name ) {
            $('select[name="shk_delivery"]','#shopOrderForm').val( SHK.data.delivery_name );
        }
        $('select[name="shk_delivery"]','#shopOrderForm').bind('change',function(){
            SHK.selectDelivery( $(this).val() );
        });
    });
    </script>
    
        
    </div>	    
    
    [[$Footer]]
    
    
        <!-- Optional JavaScript -->
        <!-- jQuery first, then Popper.js, then Bootstrap JS -->
        <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
        <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js" integrity="sha384-smHYKdLADwkXOn1EmN1qk/HfnUcbVRZyYmZ4qpPea6sjB/pTJ0euyQp0Mk8ck+5T" crossorigin="anonymous"></script>
        <script src="css/test1.js"></script>
    
      </body>
    </html>
    
    

    Чанк: shopOrderForm

    [[!shkOptions?
    &get=`delivery,payments`
    &post_name=`shk_delivery,payment`
    &toPlaceholders=`1`
    &pl_prefix=`shkopt_`
    &tpl=`select_option`
    ]]
    
    <p class="error">[[!+fi.error.error_message]]</p>
    <br />
    
    <form method="post" action="[[~[[*id]]]]" id="shopOrderForm">
    
        <fieldset>
        
        <input type="text" name="nospam:blank" value="" style="display:none;" />
        <input type="hidden" name="order" value="1" />
        
            <table cellpadding="3">
                <tr>
                    <td>Имя*:</td>
                    <td>
                        <input name="fullname" size="30" class="textfield" type="text" value="[[!+fi.fullname:default=`[[+modx.user.id:userinfo=`fullname`]]`:ne=`0`:show]]" />
                        <div>[[!+fi.error.fullname]]</div>
                    </td>
                </tr>
                <tr>
                    <td>Телефон*:</td>
                    <td>
                        <input name="phone" size="30" class="textfield" type="text" value="[[!+fi.phone:default=`[[+modx.user.id:userinfo=`phone`]]`:ne=`0`:show]]" />
                        <div>[[!+fi.error.phone]]</div>
                    </td>
                </tr>
                    <tr>
                    <td>Способ доставки*:</td>
                    <td>
                        <select name="shk_delivery" style="width:200px;">
                            <option value=""></option>
                            [[!+shkopt_delivery]]
                        </select>
                        <div>[[!+fi.error.shk_delivery]]</div>
                    </td>
                </tr>
                <tr>
                    <td>Адрес*:</td>
                    <td>
                          <input name="address" size="30" class="textfield" type="text" value="[[!+fi.address:default=`[[+modx.user.id:userinfo=`address`]]`:ne=`0`:show]]" />
                          <div>[[!+fi.error.address]]</div>
                    </td>
                </tr>
                <tr>
                    <td>E-mail*:</td>
                    <td>
                        <input name="email" size="30" class="textfield" type="text" value="[[!+fi.email:default=`[[+modx.user.id:userinfo=`email`]]`:ne=`0`:show]]" />
                        <div>[[!+fi.error.email]]</div>
                    </td>
                </tr>
                
            
                <tr>
                    <td>Способ оплаты*:</td>
                    <td>
                        <select name="payment" style="width:200px;">
                            <option value=""></option>
                            [[!+shkopt_payments]]
                        </select>
                        <div>[[!+fi.error.payment]]</div>
                    </td>
                </tr>
                <tr>
                    <td>Комментарий:</td>
                    <td>
                        <textarea name="message" class="textfield" rows="4" cols="30">[[!+fi.message]]</textarea>
                    </td>
                </tr>
                <tr>
                    <td></td>
                    <td><input type="submit" name="submit_button" class="button" value="Отправить" /></td>
                </tr>
            </table>
        </fieldset>
    </form>
    

    Чанк: select_option

    <option value="[[+value]]" [[+selected]]>[[+label]]</option>
    
  • @Andchir

    Чанк: MeFullShopCart

    
    <div class="shop-cart" data-shopcart="4">
        <div class="shop-cart-head"><b>Корзина</b></div>
        <div class="empty">
            <div class="shop-cart-empty">В корзина пока ничего нет...</div>
            <div class="shop-cart-empty">Перейдите по <a href="/katalog-klubvshok">ссылке</a> чтобы выбрать, чем порадовать себя и своих близких...</div>
            
        </div>
    </div>
    <!--tpl_separator-->
    <div class="shop-cart" data-shopcart="4">
        <!--<div class="shop-cart-head"><a name="shopCart"></a><b>Корзина</b></div>-->
        <div class="full">
            <form action="[[+this_page_url]]#shopCart" method="post">
            <fieldset>
                <div  style="text-align:right;">
                    <a href="[[+empty_url]]" id="shk_butEmptyCart">Очистить корзину</a>
                </div>
                
                
                        [[+inner]]
                
               
                <div  style="text-align:right;">
                    Итого: <b>[[+price_total]]</b> [[+currency]]
                    <br>[[+delivery_name]]
                    <br>[[+delivery_price]] [[+currency]]
                </div>
                
                <noscript>
                    <div><input type="submit" name="shk_recount" value="Пересчитать" /></div>
                </noscript>
    
            </fieldset>
            </form>
        </div>
    </div>
    
  • А скриншот?

  • @Andchir
    Друг друга не поняли.

    В форме я выбираю способ доставки, однако пересчета общей стоимости с учетом доставки не происходит.
    на скрине отметил красным.

    0_1551701399542_forum-modx-shopkeeper.png

  • Друг друга не поняли.

    Тут сложно понять когда Вы пишите сначала одно

    На страниц оформления заказа не выводится метод и стоимость доставки.

    а потом совсем другое

    В форме я выбираю способ доставки, однако пересчета общей стоимости с учетом доставки не происходит.

    Зачем мне тратить на вас кучу времени, если Вы не можете даже нормально сформулировать вопрос и дать необходимую информацию? Ищите другого помощника.

  • @Andchir
    Я пишу сюда получить ответ, а не ругаться, ваше дело помогать в проблеме или игнорировать.

    в первом сообщении я сослался на схожую проблему пользователя.

    Прочитал схожий вопрос ответа не нашел.http://forum.modx-shopkeeper.ru/topic/228/не-проставляется-наименование-доставки-и-способ-оплаты-при-выборе
    
  • jQuery подключается в самом низу, а используется он выше. Скорее всего это приводит к JS ошибке. Можно скрипт $(document).bind('ready',function(){... опустить в самый низ, или jQuery подключить вверху шаблона.

  • @Andchir в форме оформление заказа, jqery подключил вверху шаблона, снизу удалил.
    Почистил кэш в браузере, обновил страницу- безрезультатно.

    <!doctype html>
    <html lang="en">
      <head>
        <!-- Required meta tags -->
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    
        <!-- Bootstrap CSS -->
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" integrity="sha384-WskhaSGFgHYWDcbwN70/dfYBj47jz9qbsMId/iRN3ewGhXQFZCSftd1LZCfmhktB" crossorigin="anonymous">
        <link rel="stylesheet" href="/css/test1.css" type="text/css" media="screen" />
        <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
        
        <title>Bootstrap test template</title>
    
    
    
    [[$Header]]
      </head>
    
      <body>
    [[$Navbar]]
    
    
    
    <div class="container-fluid" style="padding:5%">
    	
    	<div class="row">
    		<div class="col-md-12">
    		    <h1>Оформление заказа</h1>
                    
    		    [[!Shopkeeper3@new_cart?propertySetName='new_cart']]
    		</div>
    	</div>
    
    	
    	<div class="row" >
    	    <div class="col-md-12">
    
    
                [[!FormIt?
                &hooks=`spam,shk_fihook,email,FormItAutoResponder,redirect`
                &submitVar=`order`
                &emailTpl=`shopOrderReport`
                &fiarTpl=`shopOrderReport`
                &emailSubject=`В интернет-магазине "[[++site_name]]" сделан новый заказ`
                &fiarSubject=`Вы сделали заказ в интернет-магазине "[[++site_name]]"`
                &emailTo=`[[++emailsender]]`
                &fiarReplyTo=`[[++emailsender]]`
                &fiarToField=`email`
                &emailFrom=`[[++emailsender]]`
                &emailFromName=`[[++emailsender]]`
                &fiarFrom=`[[++emailsender]]`
                &redirectTo=`23`
                &validate=`fullname:required,email,phone:required`
                &errTpl=`<br /><span class="error">[[+error]]</span>`
                ]]
                
                [[-[[!$MeFullShopOrderForm?]] ]]
                [[!$shopOrderForm?]]
                
                <br>[[+delivery_name]]
                <br>[[+delivery_price]] [[+currency]]
                
                 <div  style="text-align:right;">
                    Итого: <b>[[+price_total]]</b> [[+currency]]
                    <br>[[+delivery_name]]
                    <br>[[+delivery_price]] [[+currency]]
                </div>
                
            </div>
        </div>
                    
    <script type="text/javascript">
    $(document).bind('ready',function(){
        if ( SHK.data.delivery_name ) {
            $('select[name="shk_delivery"]','#shopOrderForm').val( SHK.data.delivery_name );
        }
        $('select[name="shk_delivery"]','#shopOrderForm').bind('change',function(){
            SHK.selectDelivery( $(this).val() );
        });
    });
    </script>
    
        
    </div>	    
    
    [[$Footer]]
    
    
        <!-- Optional JavaScript -->
        <!-- jQuery first, then Popper.js, then Bootstrap JS -->
        
        <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
        <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js" integrity="sha384-smHYKdLADwkXOn1EmN1qk/HfnUcbVRZyYmZ4qpPea6sjB/pTJ0euyQp0Mk8ck+5T" crossorigin="anonymous"></script>
        
    
      </body>
    </html>
    
    

    Чанк строки корзины товара( cartRowTpl) и чанк формы ввода данных при оформлении заказа (shopOrderForm) не должны находится в одной форме?

  • Ссылку можете дать где увидеть?

  • По вашей ссылке видимо страница не опубликована. Нашел здесь
    https://chokocandies.ru/oformlenie-zakaza2
    но там не селект, а радио-кнопки, поэтому скрипт не подходит.

  • @Andchir тестовый вариант опубликовал на ранее упомянутой странице.
    https://chokocandies.ru/oformlenie-zakaza

    на странице использовал ajaxform по примеру
    https://chokocandies.ru/oformlenie-zakaza2

  • Попробуйте так:

    <script type="text/javascript">
    $(function() {
        if ( SHK.data.delivery_name ) {
            $('select[name="shk_delivery"]','#shopOrderForm').val( SHK.data.delivery_name );
        }
        $('select[name="shk_delivery"]','#shopOrderForm').bind('change',function(){
            SHK.selectDelivery( $(this).val() );
        });
    });
    </script>
    

    Похоже что-то не работает с вашей версией jQuery. На демо-сайте другая версия.

  • @Andchir Спасибо, заработало!
    Перенес подключение JQuery из футера в хэдер.

    Мало ли кто столкнется с похожей проблемой, скрипт для радио-кнопки.

        <script type="text/javascript">
    		$(document).ready(function() {
    		    $('[type="radio"][name="shk_delivery"]').change(function () {
    		       	SHK.selectDelivery( $('[name="shk_delivery"]:checked').val() );
    		    });
    		});
    	</script>
    
 

Последние комментарии

  • а редактируются они через CMP

    Покажите скриншот. Не понял что за CMP. Но если и не подвязаны, оставьте значение, которое было.
    Вот мой скриншот:
    0_1565682115311_screenshot_179.png

    Читать далее
  • D

    Участник @Andchir написал в Экспорт/импорт данных из таблиц пакетов MIGX db через плагин CatalogFill:

    MIGXDB

    какие родители в элементах migx db?
    это элементы, которые к ресурсам никак не подвязаны!
    а редактируются они через CMP

    Читать далее
  • //Название поля ID родителя $cf_config['parent_field'] = false;

    Почему так? В MIGXDB документы должны иметь родителя. Иначе как вы их добавляете/редактируете в админке?

    Читать далее
  • D

    отключил, очистил
    далее http://joxi.ru/12MEdEvtloelG2 -> http://joxi.ru/VrwXwXZt7RN7Mm
    в журнале ошибок - пусто
    код настройки

    <?php //Название класса таблицы товаров в БД $cf_config['className'] = 'delivery_flight'; //Название пакета таблицы товаров в БД $cf_config['packageName'] = 'delivery_schedule'; //Название поля ID родителя $cf_config['parent_field'] = false; //разбивка по столбцам при импорте и экспорте (content|tv|category) $cf_config['content_row'] = array( array('ID',array('id','content')), array('Наименование',array('name','content')), array('Время',array('time','content')), array('Откуда',array('from','content')), array('Время в пути',array('duration','content')), array('Куда',array('to','content')), array('Время прибытия',array('arrival_time','content')), array('Стоимость',array('price','content')), array('Тариф',array('delivery_rate_id','content')), array('Сортировка',array('sort','content')), ); //значения по умолчанию при импорте или проверка при экспорте $cf_config['imp_content_default'] = array( 'content' => array( 'deleted' => 0, 'published' => 1, //'template' => 9 'createdon' => strtotime("now") //'publishedon' => strtotime("now") //'pub_date' => strtotime("now") //'editedby' => 1 //'editedon' => strtotime("now") ), 'tv' => array( //7 => 0 ) ); //первая строка - названия полей $cf_config['include_captions'] = true; //число товаров импортируемых за один раз (загрузка по группам). 0 - не ограничивать. $cf_config['batch_import'] = 300; //разбивать по категориям $cf_config['include_categories'] = false; //удалять дочерние категории при очистке и обновлении каталога $cf_config['delete_subcategories'] = true; //по какому полю проверять соответствие товара при обновлении. false - не проверять (очистка категории при обновлении). $cf_config['imp_chk_field'] = false; //проверять соответствие товара при обновлении по значению TV. Указать ID TV. false - не проверять (очистка категории при обновлении). $cf_config['imp_chk_tvid_val'] = false; //Добавлять товары, которые не найдены при обновлении по TV (imp_chk_tvid_val) или полю (imp_chk_field) $cf_config['imp_if_not_exist'] = true; //удалять HTML-теги при экспорте $cf_config['exp_strip_tags'] = false; //автоматически генерировать псевдоним (alias) при импорте //false - выключено; true - генерировать с переводом в транслит; 'notranslit' - генерировать без перевода в транслит. $cf_config['imp_autoalias'] = false; //Изменить значения поля для всех вложенных товаров до начала импорта. //Например можно отменить публикацию для всех товаров и публиковать только те, которые есть в новом прайс-листе. //первый массив - какие поля и на какие значения менять, второй массив - условия которые нужно проверять (можно сделать пустым) $cf_config['imp_before_change'] = false;//'[{"tv.inventory":0},{}]';//'[{"published":0},{"tv.pricename":"Поставщик1"}]';//false - для отмены //удалить файл после экспорта (скачивания) $cf_config['exp_delete_file'] = false; //кодировка CSV-файла при экспорте $cf_config['exp_csv_charset'] = 'UTF-8'; //'windows-1251' //Импортировать (обновлять) пустые значения $cf_config['imp_empty'] = true; //Имя файла процессора, который использовать для импорта. Если пусто, используется стандартный процессор "import". $cf_config['imp_custom_processor'] = ''; //путь (xpath) в XML структуре до товаров $cf_config['imp_xml_itemsparent_path'] = '';//'/catalog/shop/offers'; //Структура XML файла для импорта $cf_config['imp_xml_structure'] = ''; //тестирование конфигурации (без записи в БД). Отчёты -> Журнал ошибок. $cf_config['imp_testmode'] = true; //функция для фильтрации значений при ИМПОРТЕ function filter_import($value_arr){ $output_arr = $value_arr; /* if(isset($output_arr['content']['pagetitle'])) $output_arr['content']['pagetitle'] = mb_strtoupper($output_arr['content']['pagetitle'], 'UTF-8'); */ return $output_arr; } //функция для фильтрации значений при ЭКСПОРТЕ function filter_export($value_arr,$doc_id=0){ $output_arr = $value_arr; //var_dump($value_arr,$output_arr); //exit; /* if(isset($output_arr['price'])) $output_arr[1] = floatval($output_arr[1]) - 200; */ return $output_arr; } ?>

    shema пакета, для которого написана настройка

    <model package="delivery_schedule" baseClass="xPDOObject" platform="mysql" defaultEngine="MyISAM" version="1.1"> <object class="delivery_rate" table="delivery_rates" extends="xPDOSimpleObject"> <field key="name" dbtype="varchar" precision="255" phptype="string" null="false" default=""/> <field key="color" dbtype="varchar" precision="255" phptype="string" null="false" default=""/> <field key="desc" dbtype="text" phptype="string" null="false" default="" /> <field key="sort" dbtype="int" precision="10" phptype="integer" null="false" default="500"/> <field key="deleted" dbtype="tinyint" precision="1" attributes="unsigned" phptype="integer" null="false" default="0" /> <field key="published" dbtype="tinyint" precision="1" attributes="unsigned" phptype="integer" null="false" default="1" /> <field key="createdon" dbtype="datetime" phptype="datetime" null="true"/> </object> <object class="delivery_flight" table="delivery_flights" extends="xPDOSimpleObject"> <field key="name" dbtype="varchar" precision="255" phptype="string" null="false" default=""/> <field key="from" dbtype="varchar" precision="255" phptype="string" null="false" default=""/> <field key="time" dbtype="varchar" precision="255" phptype="string" null="false" default=""/> <field key="duration" dbtype="varchar" precision="255" phptype="string" null="false" default=""/> <field key="to" dbtype="varchar" precision="255" phptype="string" null="false" default=""/> <field key="arrival_time" dbtype="varchar" precision="255" phptype="string" null="false" default=""/> <field key="price" dbtype="varchar" precision="255" phptype="string" null="false" default=""/> <field key="sort" dbtype="int" precision="10" phptype="integer" null="false" default="500"/> <field key="delivery_rate_id" dbtype="int" precision="10" phptype="integer" null="false" default="0"/> <field key="deleted" dbtype="tinyint" precision="1" attributes="unsigned" phptype="integer" null="false" default="0" /> <field key="published" dbtype="tinyint" precision="1" attributes="unsigned" phptype="integer" null="false" default="1" /> <field key="createdon" dbtype="datetime" phptype="datetime" null="true"/> <aggregate alias="Delivery_rate" class="delivery_rate" local="delivery_rate_id" foreign="id" cardinality="one" owner="foreign" /> </object> </model>

    Читать далее