Сохраните 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'], отправленную через форму, и сделайте с этой информацией все, что вы хотите на стороне сервера.

Другие вопросы по тегам