-1

我正在为我的网站使用 PHP、Smarty、jQuery、AJAX、Colorbox - 一个 jQuery 灯箱等。有一些旧代码使用 jQuery AJAX 方法使用标准 jQuery 库函数在弹出窗口中显示消息。现在我想使用 Colorbox 弹出窗口替换那个典型的弹出窗口。简而言之,我想更改设计部分,只有消息部分保持原样。我试图这样做,但还没有成功。您能帮我对现有的旧代码进行必要的更改,以便在 Colorbox 弹出窗口而不是典型的弹出窗口中显示消息吗?供您参考,我将旧代码放在下面:

smarty 模板中调用 jQuery AJAX 函数的代码如下:

<span class="submit edit_user_transaction_status" value="{$control_url}{$query_path}?op=edit_user_transaction&page={$page}&txn_no={$user_transaction_details.transaction_no}&transaction_data_assign={$user_transaction_details.transaction_data_assign}&user_id={$user_id}{if $user_name!=''}&user_name={$user_name}{/if}{if $user_email_id!=''}&user_email_id={$user_email_id}{/if}{if $user_group!=''}&user_group={$user_group}&{/if}{if $user_sub_group!=''}&user_sub_group={$user_sub_group}{/if}{if $from_date!=''}&from_date={$from_date}{/if}{if $to_date!=''}&to_date={$to_date}{/if}{if $transaction_status!=''}&transaction_status={$transaction_status}{/if}{if $transaction_no!=''}&transaction_no={$transaction_no}{/if}">Update</span>

包含现有 AJAX 代码的js文件中的代码如下:

$(document).ready(function() {

//This function is use for edit transaction status
    $(document).on('click', '.edit_user_transaction_status', function (e) {

      e.preventDefault();

      $.colorbox.close();

         //for confirmation that status change
        var ans=confirm("Are you sure to change status?");
        if(!ans) {
          return false;
        }

        var post_url           = $(this).attr('value');
        var transaction_status_update = $('#transaction_status_update').val();       

        $.ajax({
          type: "POST",
          url: post_url+"&transaction_status_update="+transaction_status_update,
          data:$('#transaction_form').serialize(),
          dataType: 'json',  
          success: function(data) {             
            var error = data.login_error;

            $(".ui-widget-content").dialog("close");
            //This variables use for display title and success massage of transaction update              
            var dialog_title   = data.title;              
            var dialog_message = data.success_massage; 
            //This get link where want to rerdirect
            var redirect_link  = data.href;             

            var $dialog = $("<div class='ui-state-success'></div>")
                          .html("<p class='ui-state-error-success'>"+dialog_message+"</p>")
                          .dialog({
                            autoOpen: false,
                            modal:true,
                            title: dialog_title,
                            width: 500,
                            height: 80,
            close:  function(){                                     
              document.location.href =redirect_link;
              }                 
            });                 
              $dialog.dialog('open');                   
             }          
        });
     });
});

现在包含 PHP 代码和成功消息的 PHP 文件的代码片段如下:

case "edit_user_transaction":


                $transaction_no            = $request['txn_no'];
                $transaction_status_update = $request['transaction_status_update'];
                $transaction_data_assign   = $request['transaction_data_assign'];
                $user_id                   = $request['user_id'];
                $from_date                 = $request['from_date'];
                $to_date                   = $request['to_date'];
                $page                      = $request['page'];

                if($request['transaction_no']!=''){
                    $query = "&transaction_no=".$request['transaction_no'];
                }
                // If public transaction status is entered
                if($request['transaction_status']!='') {
                    $query .= "&transaction_status=".$request['transaction_status'];
                }

                // For checking transaction no is empty, blank, and numeric
                if($transaction_no!='' && !empty($transaction_no)) {
                    $objUserTransactions  = new UserTransactions();
                    $objUserPackages      = new UserPackages();

                    //if transaction status update to success and transaction data not yet assign
                    if(empty($transaction_data_assign) && $transaction_data_assign == 0 && $transaction_status_update == "success") {
                        $user_transactions = $objUserTransactions->GetUserTransactionsDetailsByTransactionNo($transaction_no, $user_id);

                        $i = 0 ;
                        $j = 0 ;
                        //Create array related study and test
                        foreach($user_transactions['transaction_details'] as $my_cart) {
                            if(!empty($my_cart['pack_id'])) {
                                if($my_cart['pack_type'] == 'study') {
                                    $data['study'][$i] = $my_cart['pack_id'];
                                    $i++;
                                }
                                if($my_cart['pack_type'] == 'test') {
                                    $data['test'][$j]['pack_id']          = $my_cart['pack_id'];
                                    $data['test'][$j]['pack_expiry_date'] = $my_cart['pack_expiry_date'];
                                    $data['test_pack_ids'][$j]            = $my_cart['pack_id'];
                                    $j++;
                                }
                            }
                        }

                        if(!empty($data['study'])) {
                            $objUserStudyPackage = new UserStudyPackages();
                            //Update packages sold count & purchase date in package table
                            $objUserStudyPackage->UpdateStudyPackagePurchaseData($data['study']);


                            //For insert packages related data to package_user table
                            foreach($data['study'] as $study_pack_id) {
                                $objUserPackages->InsertStudyPackagesToPackageUser($study_pack_id, $user_id);
                            }

                        }

                        if(!empty($data['test'])) {
                            $objUserTestPackage  = new UserTestPackages();
                            //Update packages sold count & purchase date in test package table
                            $objUserTestPackage->UpdateTestPackagePurchaseData($data['test_pack_ids']);

                            //For insert test related data to test_user table
                            foreach($data['test'] as $test_pack_data) {
                                $objUserPackages->InsertTestPackagesToTestUser($test_pack_data['pack_id'], $test_pack_data['pack_expiry_date'], $user_id);
                            }
                        }

                        //This function is use for update status inprocess to success and transaction_data_assign flag 1
                        $user_transactions = $objUserTransactions->UpdateTransactionStatusByTransactionNo($transaction_no, $user_id, $transaction_status_update, '1');

                    } else {
                        // This function is use for update status
                        $user_transaction_details = $obj_user_transactions->UpdateTransactionStatusByTransactionNo($transaction_no, $user_id, $transaction_status_update);
                    }   

                    //Email functionality when status update                
                    include_once("transaction_status_update_email.php");                    

                    **$reponse_data['success_massage'] = "Transaction status updated successfully";
                    $reponse_data['title']           = "Transaction";
                    $reponse_data['href']            = "view_transactions.php?page=".$page."&from_date=".$from_date."&to_date=".$to_date.$query;                                
                    $reponse_data['login_error']     = 'no';
                    $reponse_data = json_encode($reponse_data);

                    echo $reponse_data;

                    die();**
                }

                break;

以粗体显示的代码是成功响应消息。你能在这方面帮助我吗?提前致谢。

4

1 回答 1

1

哟,你在 PHP 聊天中寻求帮助。希望这会有所帮助:

所以底部的对话框部分需要更改以支持颜色框。首先,加载所有颜色框的东西。其次,您需要通过从页面上的元素中获取内容或动态构建来动态创建颜色框内容。

您可能需要调试其中一些,但通常这是您执行此操作的方式...

删除整个 $dialog 变量

var $dialog = .....

并将其更改为类似于以下内容的内容:

var $dialog = $('<div>').addClass('ui-state-success').append($('<p>').addClass('ui-state-error-success').html(dialog_message));

然后你需要做这样的事情:

$.colorbox({html: $dialog});

如果您在查看颜色框中动态构建的内容时遇到问题,请尝试在打开的回调上调用 $.colorbox.resize():

opened: function(){
  $.colorbox.resize();
}

如果这不起作用,您可能还需要在 resize 方法中传递一个 innerWidth/innerHeight 或 width/height 属性。

于 2013-09-17T07:14:39.053 回答