ajax jquery checkbox значение дубликат - PullRequest
0 голосов
/ 11 апреля 2019

Я пытаюсь сравнить продукт

1 / покупатель проверяет один или несколько флажков сравнения

2 /, когда отображается флажок, внизу появляется сообщение

3 / значение флажка сохраняется в сеансе

шаг 1

Сценарий ниже связан с ajax.Каждый раз, когда я нажимаю на флажок, он вызывает ajax, но если я нажимаю, у меня появляется сообщение, если я нажимаю другое, у меня есть 2 сообщения, если я нажимаю другое, у меня есть 3 сообщения ...

шаг 2

Моя цель состоит в том, чтобы изменить это и иметь следующие правила:

1 / Установите флажок

2 / Внизу появляется сообщение с кнопкой

3/ Нажмите на кнопку, и все значения будут вставлены в сеанс.

В настоящее время я на шаге 1, теперь, как перейти к шагу 2, немного потерян с js.

Iпредположим, я должен удалить внутри js успех и добавить что-то вроде этого

спасибо.

<div id="container" style="display:none;"> 
<span class="alert alert-info"><button type="button" class="btn btn-primary"><a href="compare.php">Compare</button></span>
</div>

                $new_prods_content .= '
    <script>
    $(function() {
        $(\'input[type=checkbox]\').change(function(){   
            var chkArray = [];   
            $(\'#container\').html(\'\');

            //put the selected checkboxes values in chkArray[]
            $(\'input[type=checkbox]:checked\').each(function() {
                chkArray.push($(this).val());
            });


            //If chkArray is not empty show the <div> and create the list
            if(chkArray.length !== 0){
                $(\'#container\').show();           
                $.each(chkArray, function(i, val) { 
                    $(\'<p>\').text(chkArray[i]).appendTo(\'#container\');

                     $.ajax({
                        method: \'POST\',
                        url : "http://localhost/shop/ext/ajax/products_compare/compare.php",
                        data : {product_id:chkArray[i]},
                        success : function(resp){
                            alert("Product is added to be compared" );
                        }

                    });               
                });
            }else{
                $(\'#container\').hide();   
                $(\'#container\').html(\'\');
            }
        });
    })             
    </script>';

    echo $new_prods_content;

Для информации, мой ajax:

$ product_id = (int)$ _POST ['product_id'];

if(!is_array($_SESSION['ids'])) {
  $_SESSION['ids'] = [];
} else {
  array_push($_SESSION['ids'], $product_id);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...