使用PHP将JavaScript变量发布到MySQL

时间:2015-02-17 10:33:13

标签: javascript php jquery html mysql

我正在尝试将一个JavaScript变量发送到PHP,但不确定如何做到这一点,有些事情已经说过Ajax,但我以前从未使用它,也无法理解它。有谁知道最简单的方法是什么?我试图在我的数据库中填充的列称为“cogs”。

我有以下JavaScript代码:

<script>
    $(document).ready(function() {
        $('#duration-select').change(function() {
var cogs = $('#cogsday').html();

                cogs = cogs.replace(/\D/g,'');

        var x =$('#duration-select').val();


        var y = cogs * x;

        $('#request').removeClass('hidden');

         $('#duration-value').text('Total cost for this duration = ' + (y) + ' cogs');

            if($(this).val() !== '') {


            } else {
                $('#duration-value').text('');

            }
        });
        $('#request').click(function() {

                var cogs = $('#cogsday').html();

                cogs = cogs.replace(/\D/g,'');

        var x =$('#duration-select').val();

        var y = cogs * x;
        $('#total').text(y);

        });

    });
    </script>

以下HTML代码:

<label id="total"></label>

这是我尝试发布数据的地方,除了$ cost之外,其他所有内容都在发布:

<form name="form" method="post">
            <div class="modal-footer">

                <?php

                    if ($row3['availability'] === 'Available') {
                    if (isset($_POST['request'])) {

                        $to_id     = $row3['customerid'];
                        $from_id   = $_SESSION['customerid'];
                        $time_sent = date('Y-m-d H:i:s');
                        $subject   = 'Request for ' . $row3['title'];
                        $title     = $row3['title'];
                        $listingid = $listingid;
                        $cost      = $_POST['total']; //posting 0                        

                        $message   = $customer_data['first_name'] . ' ' . $customer_data['last_name']

                        $request = mysql_query("INSERT INTO messages (to_id, from_id, listing_id, time_sent, subject, message, cogs, messagenumber, title, msgrand) VALUES ('$to_id', '$from_id', '$listingid', '$time_sent', '$subject', '$message', '$cost', '1', '$title', '$randomString')") or die(mysql_error());

                    }


                }


?> 
                <input type="submit" class="btn btn-success" name="request" value="Yes" /> 
                <input type="submit" class="btn btn-danger" data-dismiss="modal" value="No" />  

        </div>
    </form>   

然后我试图将标签id = total的值发布到我的db或JavaScript变量(y)。问题是0总是被发送到DB,而它应该是标签中id为total的值。

4 个答案:

答案 0 :(得分:1)

对隐藏变量使用name参数,它将自动传递给PHP。

<label id="total"></label>

<input type="hidden" name="total" id="nameID"/>

$('#total').text(y);以下的javascript中写$('#nameID').val(y);。一切都会正常运作。

您使用了total标签,但$ _POST仅识别输入类型,因此请使用input type=....而不是标签,div等。

答案 1 :(得分:0)

如果您需要回复此处

你已经创建了一个输入类型,它的值将由该javascript设置,然后你就可以在php代码中获得$ cost值

<input type="hidden" value="" name="total" id="total">

..................

$("#total").val(y);

答案 2 :(得分:-1)

您可以使用它来发送变量....

<input type="text" id="name" class="name" placevalue="Enter you name" required /><br><br>
<input type="text" id="email" class="email" placevalue="Enter you name" required /><br><br>
<button id= "det_submit" onclick="submit_det()"> Submit </button>

<script>
    function submit_det() {
       var name = document.getElementById("name").value;
       var email = document.getElementById("email").value;

       if(name != "" && email != "") {  
        $.post(
            'xx.php',
               { 
                 name : document.getElementById("name").value,
                 email1 : document.getElementById("email").value,
               },
               function(data){
                   alert(data);
                });

        } else {
            alert("empty");
        }
    } 
</script>

这里是xx.php

<?php
    if(isset($_POST['name']) && isset($_POST['email1'])) {
                $name = $_POST['name'];
                $email = $_POST['email1'];

                //code to insert into your database......       
        }
?>

答案 3 :(得分:-1)

为此隐藏参数使用ID和名称

<label id="total"></label
<input type="hidden" name="name" id="name"/>

并在jQuery中编辑像这样的代码

$('#total').text(y);  
$('#nameID').val(y);

希望它能起作用