Form在第一次尝试时不使用jQuery向数据库提交值

时间:2015-05-09 16:23:43

标签: php jquery ajax html5

我正在尝试制作一个简单的激励计算器。

问题:

  1. 当我提交表单时,字段和字段名称的值显示在地址栏中。 例如:" http://localhost/incentive%20tracker/?jQueryDatePicker1=09%2F05%2F2015&pid=n&qty=1&memo=&remarks=&add=Add"

  2. 当我尝试在第一次加载页面后第一次尝试提交值时,这些值不会插入到数据库中。第一次尝试后,将插入值。

  3. 在数据库中插入数据成功后,尽管有成功功能,jQuery仍然没有向我显示任何消息。

  4. 如果qty字段为否定,我将无法显示错误消息。

  5. 我不确定我做错了什么。

    HTML

    <form id="saleDetail">
        <input type="text" id="jQueryDatePicker1" name="jQueryDatePicker1" value="06/05/2015">
    
        <input type="text" name="pid" id="pid" required placeholder="Enter a product code">
    
        <datalist id="products">
        <?php
        $sql="SELECT * FROM products";
        $result = mysqli_query($db, $sql);
        while($fetch_options=mysqli_fetch_array($result)){
      ?>
        <option value="<?php echo $fetch_options['pid']; ?>"><?php echo $fetch_options['pid']; ?></option>
        <?php
      }
    ?>
        </datalist>
    
        <input type="number" id="qty" name="qty" value="" autocomplete="off" required placeholder="Enter the Quantity">
        <input type="text" id="memo" name="memo" value="" autocomplete="off" placeholder="Enter the Cash memo number">
        <textarea name="remarks" id="remarks" rows="2" cols="27" placeholder="Any remarks"></textarea>
        <input type="submit" id="add" name="add" value="Add">
    
    <div id="message"></div>
        </form>
    

    JQuery的

    <script>
    $(document).ready(function()
    {
         var jQueryDatePicker1Opts =
        {
                dateFormat: 'dd/mm/yy',
                changeMonth: false,
                changeYear: false,
                showButtonPanel: false,
                showAnim: 'slideDown'
        };
        $("#jQueryDatePicker1").datepicker(jQueryDatePicker1Opts);
        $("#jQueryDatePicker1").datepicker("setDate", "new Date()");
        $("#PanelMenu1").panel({animate: true, animationDuration: 200, animationEasing: 'swing', dismissible: true, display: 'push', position: 'right'});
    
        $('#add').click(function()
        {
            var date=$('#jQueryDatePicker1').val();
            var pid=$('#pid').val();
            var qty=$('#qty').val();
            var remarks=$('#remarks').val();
            var memo=$('#memo').val();
    
            if(pid==="" || qty==="" || qty<0){
                $("#message").html("<span style='color:#cc0000'>Please fill in the required fields!");
            }
            else{
                var dataString='date='+date+'&pid='+pid+'&qty='+qty+'&remarks='+remarks+'&memo='+memo;
    
                $.ajax({
                    type:"POST",
                    data: dataString,
                    url: "add.php",
                    cache:false,
                    success: function(html){
                        $("#message").html("Data Added successfully! ");
                    }
                });
            }
    
        });
        return false;
    });
    
    </script>
    

    PHP

    <?php
    include 'connect.php';
    $error_message = "";
    $mysql_table = "sales";
    //if ($_SERVER['REQUEST_METHOD'] == 'POST')
    if (isset($_POST['pid']) && isset($_POST['qty']))
    {
        $newdate =$_POST['date'];
        $newpid = $_POST['pid'];
        $newqty = $_POST['qty'];
        $newremarks = $_POST['remarks'];
        $newmemo = $_POST['memo'];
    
    
        $newpid = mysqli_real_escape_string($db, $newpid);
        $newqty = mysqli_real_escape_string($db, $newqty);
        $newremarks = mysqli_real_escape_string($db, $newremarks);
        $newmemo = mysqli_real_escape_string($db, $newmemo);
    
        $sql = "SELECT incentive FROM products WHERE pid = '$newpid'";
        $result = mysqli_query($db, $sql);
        $rate=mysqli_fetch_array($result);
        $amt = $rate['incentive'] * $newqty;
    
        $sql = "INSERT `".$mysql_table."` (`date`, `pid`, `qty`, `amt`, `memo`, `remarks`) VALUES ('$newdate', '$newpid', '$newqty', '$amt', '$newmemo', '$newremarks')";
            $results = mysqli_query($db, $sql);
        echo "Success";
            mysqli_close($db);
      }
      ?>
    

0 个答案:

没有答案