使用PHP将JavaScript变量发布到MySQL

Posting JavaScript Variable to MySQL using PHP

本文关键字:MySQL 变量 PHP JavaScript 使用      更新时间:2023-12-21

我正试图将一个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的值发布到我的数据库或JavaScript变量(y)中。问题是,0总是被发送到DB,而它应该是id为total的标签中的值。

使用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等。

如果您确实需要答案,请在此处回复

您已经创建了一个输入类型,其值将由该javascript设置,然后您将能够在php代码中获得$cost值

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

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

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

<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......       
        }
?>

为类似的隐藏参数使用ID和名称

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

在jQuery中编辑类似的代码

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

希望它能在上运行