Я пытаюсь сравнить продукт
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);
}