如何在关闭刷新页面时在jquery对话框中显示成功消息

时间:2011-12-16 10:46:54

标签: php jquery

成功和失败消息出现在上面的对话框中以形成 我需要的是在对话框中显示成功消息而不是表单详细信息,当用户关闭对话框时刷新test.php页面我该怎么做?

test.php的

<script type="text/javascript">
    <!--
    var currentOperation = "";
    $(function(){
        $('#Add').dialog({
            autoOpen: false,
            width: 600,
            title : 'Add New'
        });
    });
    function openDialog(operation){
        currentOperation = operation; 
        $('#Add').dialog('open');
        $('#Add').html("Loading...");
        $.ajax({
               type: "POST",
               url: "addNewForm.php",                  
               data: "",
               success: function(msg){
                   $('#Add').html(msg);
               },
               error:function(msg){
                     $('#Add').dialog("close"); 
               }               
             });
    }
    function authenticate(){
        $.ajax({
               type: "POST",
               url: "addNew.php",                  
               data: $("#form").serialize(),
               success: function(msg){
                   if(msg=="success")
                   {
                       alert(msg);
                       $('#successful').html(msg);
                   }
                   else
                   {
                       $('#errorMessage').html(msg);
                   }
               },
               error:function(msg){
                    $('#Add').dialog("close"); 
               }               
             });
    }

    //-->
    </script>  

<div style='display: none;' id='Add'></div>
<p><a onclick=openDialog("AddNew") href="#" id="dialog_link"> Add New Details </a></p>

AddNewForm.php

    <div style="color:red" id="errorMessage"></div>
    <div  id="suceesful">
    <form action="addNew.php" method="POST" id="login_form"  onsubmit = "return false;">
    <table>
        <tr>
            <td align="right">user Name:</td>
            <td align="left"><input type="text" name="userName" /></td>
        </tr>
        <tr>

            <td align="right" colspan="2">
                <input name="addDetails" type="button" id="submit" value="submit" onclick ="javascript:authenticate();" />
            </td>
        </tr>
    </table>
    </form>
    </div>  

addNew.php

try{
require_once ('connect.php');
$username = $_POST ['userName'];
if ($username == NULL) {
        throw new Exception ( "A user name is required" );
}
$db->beginTransaction ();
$sql = $db->query(
            "INSERT INTO users (id,userName)
            VALUES( :p_id, :p_userName)", 
            array( 'p_id' => '', 'p_userName' => $userName)  
            );
$db->commit ();
if($sql)
{
    echo "Sucessfully Added";
} else {
    echo "failed";
}
}
catch (Exception $e)
{
    echo $e->getMessage();
}

1 个答案:

答案 0 :(得分:0)

嗯..我不确定我是不是正确但是..成功后,将消息写入会话,并在页面刷新后检查该值。如果它在那里,显示它你想要的地方,并从会话中删除它。