Сохраните JQuery var sum в БД MySQL
Я использую jquery для суммирования значений входного флажка, и мне нужно сохранить сумму в БД MySQL, но как я могу поместить значение в php var? Я не знаю, как я могу это сделать.
Кто-нибудь может мне помочь? Я новичок в JQuery:/
Вот код, который я использую:
<script type="text/javascript">
$(document).ready(function () {
function recalculate() {
var sum = 0;
$("input[type=checkbox]:checked").each(function() {
var val = $(this).attr("preco").replace(',', '.');
sum += parseFloat(val);
});
$("#output").html(sum);
}
$("input[type=checkbox]").change(function() {
recalculate();
});
});
</script>
<?php
if (isset($_POST['submit'])){
$transporte = $_POST['metodoenvio'];
(... save into DB)
}
?>
<span id="output"></span> // the sum in html shows up here
<form class="cmxform" id="pedidoForm" method="post" action="">
<input type="checkbox" name="metodoenvio" class="metodoenvio" preco="20" />
<input type="checkbox" name="metodoenvio" class="metodoenvio" preco="10" />
(...)
<input type="submit" name="submit" id="submit" value="submit"/>
</form>
3 ответа
Take a hidden type variable with some id in form tag and put value in `hidden variable` by `jquery` like:
$("#hidden_var").val(sum);
Then at the end submit the form
Добавить новое скрытое поле ввода в форму для хранения суммы
<form class="cmxform" id="pedidoForm" method="post" action="">
//add new hidden input field to have the sum
<input id="sum_input" name="sum" type="hidden"/>
<input type="checkbox" name="metodoenvio" class="metodoenvio" preco="20" />
<input type="checkbox" name="metodoenvio" class="metodoenvio" preco="10" />
(...)
<input type="submit" name="submit" id="submit" value="submit"/>
</form>
// Затем используем jquery для помещения суммы в сумму ввода id
function recalculate() {
var sum = 0;
$("input[type=checkbox]:checked").each(function() {
var val = $(this).attr("preco").replace(',', '.');
sum += parseFloat(val);
});
$("#output").html(sum);
//jquery to put sum into form
$("#sum_input").val(sum);
}
Вы должны разделить ваши php серверные скрипты из ваших html/js клиентских страниц. создайте отдельную страницу php, чтобы обрабатывать данные и вызывать их с помощью ajax-вызова.
измените вашу кнопку отправки на просто кнопку и прикрепите событие onclick, чтобы вызвать функцию, которая суммирует флажки, а затем инициирует запрос ajax и.
<script>
function sumChecked(){
i = 0;
$.each($('#pedidoForm:ckecked), function({
i++;
});
$.ajax({
url:"yourPHPpage.php",
type:"POST",
data:{"sumVar":i},
success: function(data){
alert ("Process Complete");
}
})
}
...
</script>
...
<form class="cmxform" id="pedidoForm">
<input type="checkbox" name="metodoenvio" class="metodoenvio" preco="20" />
<input type="checkbox" name="metodoenvio" class="metodoenvio" preco="10" />
(...)
<input type="button" name="submit" id="submit" value="submit" onClick="sumChecked()"/>
</form>
затем на своей странице php перехватите переменную $_POST['sumVar'], отправленную через форму, и сделайте с этой информацией все, что вы хотите на стороне сервера.