Обнаружить любое изменение из формы PHP без использования кнопки отправки - PullRequest
0 голосов
/ 23 сентября 2019

Мне нужна помощь.Сейчас я пытаюсь создать функцию, которая может обнаружить любое значение изменения из формы PHP.Сейчас я работаю с использованием CodeIgniter.Я объясню более подробно об этом.

Я делаю сайт электронной коммерции.Если пользователь на странице корзины и изменения кол-во, но пользователь еще не оформить заказ и по-прежнему хотите, чтобы браузер больше .... когда пользователь должен изменить кол-во и нажмите на другую страницу.Появится всплывающее предупреждение.В этом всплывающем сообщении есть функция сохранения изменяющегося количества.Но если пользователь ничего не меняет.Всплывающее предупреждение не должно отображаться.

Я уже установил это в меню.

<?php echo form_open('order_products_execute', 'class="order_form"'); ?>
                <?php include(VIEWPATH.'_order_parts.html') ?>
                <div class="common_btn_area">
                    <input type="hidden" name="branch_id" value="<?php echo $branch_id; ?>">
                    <button type="button" class="add_cart_more">add more</button>
                    <button type="submit" class="common_save_btn confirmation">Order</button>
                </div>
<?php echo form_close(); ?>

<!-- footer menu -->
<ul>
    <li>
       <a href="<?php echo base_url('top/'); ?>" class="footer_link" onclick="ExitCart('<?php echo base_url('top/'); ?>')" >
         <span>Home</span>
       </a>
    </li>
    <li>
       <a href="<?php echo base_url('product/'); ?>" class="footer_link" onclick="ExitCart('<?php echo base_url('product/'); ?>')" >
         <span>Product</span>
       </a>
    </li>
</ul>

и установите скрипт

<script>
function ExitCart(link){
            var $form = $('.order_form');

            #code for compare previous value with changing value
            $.ajax( {
                type: $form.attr('method'),
                url : "/buyer/ajax/compare_form_add_cart",
                dataType : "json",
                data : $form.serialize(),
                success : function(resultdata) {
                    if(resultdata){
                        if(confirm("Do you want to save your changes?")){
                            #if confirm yes
                            $.ajax({
                                type: 'post',
                                url: '/buyer/Ajax/add_order_data_in_cart_session',
                                data: $('.order_form').serialize(),
                                dataType: 'json',
                                success: function(res, textStatus, xhr){
                                    if(res.result) {
                                        location.href = link;
                                    } else {
                                        $( "#loading_layer" ).css('display', 'none');
                                        alert('Failed to save cart data. Please try again.');
                                    }
                                }
                            });
                        }else{
                            #if confirm not
                            location.href = link;
                        };
                    }else{
                        return true;
                    }
                }
            });
}
</script>

Когда я реализую этот код ajax, иногда код работает.Но иногда это не так.Есть ли код, который может обнаружить любое изменение из формы.Но без нажатия кнопки отправки.

Ответы [ 2 ]

0 голосов
/ 23 сентября 2019

Вам нужно сделать копии ваших полей ввода, например

// Input Field (TEXT)
< input type="text" id="input1" value="Same Value" />

// Hidden Input for comparison
< input type="hidden" value="Same Value" />

при нажатии кнопки, вы должны сравнить эти поля как

function ExitCart(link){
     // Get Input Value
     var val = $.trim($('#input1').val());

    // Get Reference Value from next input
    var valChk = $.trim($('#input1').next().val());

    if(val != valChk) {
        YOUR CODE HERE
    }    
}
0 голосов
/ 23 сентября 2019

в jQuery вы можете связать все входные изменения

$('.order_form input').change(functon(){
var $form = $('.order_form');

            #code for compare previous value with changing value
            $.ajax( {
                type: $form.attr('method'),
                url : "/buyer/ajax/compare_form_add_cart",
                dataType : "json",
                data : $form.serialize(),
                success : function(resultdata) {
                    if(resultdata){
                        if(confirm("Do you want to save your changes?")){
                            #if confirm yes
                            $.ajax({
                                type: 'post',
                                url: '/buyer/Ajax/add_order_data_in_cart_session',
                                data: $('.order_form').serialize(),
                                dataType: 'json',
                                success: function(res, textStatus, xhr){
                                    if(res.result) {
                                        location.href = link;
                                    } else {
                                        $( "#loading_layer" ).css('display', 'none');
                                        alert('Failed to save cart data. Please try again.');
                                    }
                                }
                            });
                        }else{
                            #if confirm not
                            location.href = link;
                        };
                    }else{
                        return true;
                    }
                }
            });
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...