簡體   English   中英

如何檢查成功的數據在PHP文件中使用MySQL提交

[英]How to check successful data Submit using MySQL in a PHP file

我正在使用PHP文件中的MySQL命令提交表單。 我可以毫無問題地插入數據。

但是,我同時也想在同一頁面上向用戶顯示“謝謝消息”,以便他/她知道數據已成功注冊。 另一方面,如果出現任何錯誤,我也可以顯示一條抱歉的消息。

這就是我的問題。 我已經用Javascript編寫了幾行以在同一頁面中顯示消息。 但是,我堅持應該檢查哪些(以及如何)成功和失敗。

我在下面附上我的代碼。

您能否通過您的想法幫助我?

謝謝AB

HTML表單標簽

<form id="info-form" method="POST" action="form-submit.php">

form-submit.php

<?php   
    require("database-connect.php");

    $name = $_POST['name'];
    $email = $_POST['email'];
    $mobile = $_POST['mobile'];

    $sql = "INSERT INTO tbl_details ".
           "(name,email_id,mobile_number) ".
           "VALUES ".
           "('$name','$email','$mobile')";

    mysql_select_db('db_info');     
    $retval = mysql_query( $sql, $conn );

    if(! $retval )
    {
        die('Could not enter data: ' . mysql_error());
        return false;
    }

    echo "Entered data successfully\n";
    mysql_close($conn);
?>

Submit-logic.js

$(function () 
{
    $('form').submit(function (e) 
    {                   
        e.preventDefault();

        if(e.target === document.getElementById("info-form"))
        {
            $.ajax(
            {
                type:this.method,
                url:this.action,
                data: $('#info-form').serialize(),
                dataType: 'json',    
                success: function(response)
                {
                    console.log(response);                          
                    if(response.result == 'true') 
                    {
                        document.getElementById("thankyou_info").style.display = "inline";
                        $('#please_wait_info').hide();
                        document.getElementById("info-form").reset();
                    }                       
                    else 
                    {           
                        document.getElementById("thankyou_info").style.display = "none";
                        document.getElementById("sorry_info").style.display = "inline";
                        $('#please_wait_info').hide();  
                    }
                }
            }
        )}; 
    });
}

每個文檔: http : //api.jquery.com/jquery.ajax/

dataType (default: Intelligent Guess (xml, json, script, or html))
Type: String
The type of data that you're expecting back from the server.

您將其顯式設置為json ,然后返回一個字符串。 您應該像告訴ajax腳本一樣返回json

<?php   
    require("database-connect.php");

    $name = mysql_real_escape_string($_POST['name']);
    $email = mysql_real_escape_string($_POST['email']);
    $mobile = mysql_real_escape_string($_POST['mobile']);

    $sql = "INSERT INTO tbl_details ".
           "(name,email_id,mobile_number) ".
           "VALUES ".
           "('$name','$email','$mobile')";

    mysql_select_db('db_info');     
    $retval = mysql_query( $sql, $conn );

    if(! $retval )
    {
        die(json_encode(array('result' => false, 'message' => 'Could not enter data: ' . mysql_error()));
    }

    echo json_encode(array('result' => true, 'message' => 'Entered data successfully'));
    mysql_close($conn);
?>

我還添加了代碼以清理您的字符串,盡管不建議使用mysql_* ,最好升級到mysqliPDO 無需清理,用戶就可以入侵您的數據庫。

不過,正確返回json將確保您的response success: function(response)是一個對象,並且response.result將按預期返回,並且您可以使用response.message在所需的位置顯示消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM