Я не знаю, возможно ли это, но мне нужно отправить некоторую информацию через форму, находящуюся внутри URL, исходя из значения флажка.
Этот код ниже находится внутри цикла продуктов и создает флажок для каждогопродукты (сравнение товаров).
В моем случае невозможно сделать этот код ниже по форме.
<?php
echo '<div><input type="checkbox" value="' . $products_id .'" id="productsCompare" title="Compare" onclick="showProductsCompare()" /> Compare</div>';
?>
Чтобы решить эту проблему, я начал использовать подход ajax и поместил результат в $ _SESSION
Мой скрипт для значения checbox
$(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 create the list via ajax
if (chkArray.length !== 0) {
$.ajax({
method: 'POST',
url: 'http://localhost/ext/ajax/products_compare/compare.php',
data: { product_id: chkArray }
});
}
});
});
И в конце отправить информацию на другую страницу по этому коду.Как вы видите, в этом случае формы нет.
<div class="col-md-12" id="compare" style="display:none;">
<div class="separator"></div>
<div class="alert alert-info text-md-center">
<span class="text-md-center">
<button class="btn"><a href="compare.php">Compare</a></button>
</span>
</div>
</div>
Нет проблем, все работает отлично, за исключением моего файла compare.php, у меня нет значения моего ajax.Я вставил session_start
в AJAX-файл, но не добавляется значение в Compare.php.Я пробовал по-другому, включить session_start()
в Compare.php не работает.
Мое единственное решение состоит в том, чтобы включить в файл моей продукции hidden_field и включить значение ajax в массив динамически, если это возможно.В этом случае значения hidden_fields должны быть в массиве и отправляться в форме.
Этот сценарий необходимо переписать, чтобы включить в массив значение chechbox без использования ajax.Как вставить хороший код?
$(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) {
// Remove ajax
// some code here I suppose to create an array with the checkbox value when it is on true
}
});
});
и этот код с формой
<?php
echo HTML::form('product_compare', $this->link(null, 'Compare&ProductsCompare'), 'post');
// Add all the js values inside an array dynamically
echo HTML::hidddenField('product_compare', $value_of_javascript);
?>
<div class="col-md-12" id="compare" style="display:none;">
<div class="separator"></div>
<div class="alert alert-info text-md-center">
<span class="text-md-center">
<button class="btn"><a href="compare.php">Compare</a></button>
</span>
</div>
</div>
</form>
Примечание: этот код ниже не включен в форму (без изменений).
<?php
echo '<div><input type="checkbox" value="' . $products_id .'" id="productsCompare" title="Compare" onclick="showProductsCompare()" /> Compare</div>';
?>
У меня такой вопрос: как заполнить $value_of_javascript
в функции флажка установлено значение true, чтобы правильно отправлять информацию внутри compare.php
Если мой вопрос не содержит информации,Я отредактирую этот пост и обновлю в последствии.
Спасибо.