只有1个数据提交到数据库(食品订购系统)

时间:2018-04-14 17:37:16

标签: php ajax

我是在PHP上实现Ajax的新手,所以我需要一个很大的帮助!无论如何我的问题是我的table_menu上有5个列名称

table_menu:

  

menu_id   menu_foodname   menu_price   menu_quantity   menu_image

并且在这些列名称中有6个数据。

我将在我的网页上获取这些数据(users.php)

<?php 
        // users.php
        // fetching data
        include 'config/initialize.php'; 

        $sql = "SELECT * FROM table_menu"; 
        $res = mysqli_query($con, $sql);
        if($res)
        {
        echo "<table><tr>";
        while($row = mysqli_fetch_array($res))
        {

            echo "<td>";
            echo "<div class='horizontalAlign'>";
            echo "<form class='form-item' method='post'>";
            echo "<img class='img-circle' src='menuImage/".$row['menu_image']."' style='height: 150px; width: 200px;'>";
            echo "<input type='hidden' name='menuimage' class='menuimage' value='".$row['menu_image']."'>";
            echo "<input type='text' name='menufoodname' class='menufoodname' value='".$row['menu_foodname']."' style='border:none; margin-top: 10px; margin-left: 30px; font-size: 20px;' readonly>";
            echo "<div style='font-size: 20px; margin-left: 40px;'>Price:</div> <input type='text' class='menuprice' name='menuprice' value='".$row['menu_price']."' style='border:none; margin-left: 100px; margin-top: -28px; position: absolute; font-size: 20px;' readonly>";
            echo "<div style='font-size: 20px;'>Quantity:</div> <input type='number' class='menuquantity' name='menuquantity' style='margin-top: -26px; position: absolute; margin-left: 90px; text-align: center;' value='".$row['menu_quantity']."' min='0' max='100'>";
            echo "<br>";
            echo "<input type='button' value='Submit order' class='btnaddorder btn btn-lg btn-info' class='btn btn-info'>";
            echo "</form>";
            echo "</div>";
            echo "</td>";
            $i++;

                if($i == 3)
                {
                    echo "</tr><tr>";
                }

        } // end of while

                echo "</tr></table>";

        } // end of variable $i

        ?> <!-- // end of fetching data -->

我想在用户订购时不刷新页面...所以我在users.php的底部添加了这个ajax脚本

<script type="text/javascript">

    $(document).ready(function() {
        $(".btnaddorder").click(function() {
        var menuimage = $(".menuimage").val();
        var menufoodname = $(".menufoodname").val();
        var menuprice = $(".menuprice").val();
        var menuquantity = $(".menuquantity").val();

        // Returns successful data submission message when the entered information is stored in database.
            $.post("addorders.php", {
            menuimage1: menuimage,
            menufoodname1: menufoodname,
            menuprice1: menuprice,
            menuquantity1: menuquantity,
            }, function(data) {

                });
        });
    });

    </script>

现在的问题是,当我点击获取数据上的第一个按钮时,第一个按钮仅被插入,如果我将第二个项目添加到第三个项目,直到第五个项目,它只显示数据库上的第一个数据,这是第一个数据,为什么?

继承人我的addorders.php

<?php 

    include 'config/initialize.php';
    include 'credentials/credentialsForUsers.php';

    $menuimage = $_POST['menuimage1'];
    $menufoodname = $_POST['menufoodname1'];
    $menuprice = $_POST['menuprice1'];
    $menuquantity = $_POST['menuquantity1'];

    $sql = "INSERT INTO table_orders VALUES('','$username','$email','$menuimage','$menufoodname','$menuprice','$menuquantity')";
    $result = mysqli_query($con, $sql);


?>

谢谢你&amp;对不起,我的英语不好。希望你能理解我的问题

1 个答案:

答案 0 :(得分:0)

要说明您要提交的字段,您可以执行以下操作:

$(".btnaddorder").click(function() {
    // here you find closest form tag to the pressed button
    var form = $(this).closest('form');

    // replace all you values with simple .serialize() function
    // this function will use all non-disable fields from the form
    $.post("addorders.php", form.serialize(), function(data) { });
});

在服务器端,您的$_POST将与表单上的字段具有相同的密钥。