2015-07-01 4 views
0

У меня есть пользовательская кнопка удаления, все, что я хочу, это своего рода подтверждение до того, как действие удаления происходит. Я пробовал несколько способов сделать это без успеха.Подсказка для подтверждения перед выполнением cutsom CbuttonColumn action

вот мой код, я использую CArrayDataProvider, поэтому пришлось создать шаблон для кнопки удаления.

array(
     'class' => 'CButtonColumn', 
     'template' => '{delete}{reset}', 
     'deleteConfirmation'=>"js:'Are You Sure?'", 
     'afterDelete'=>'function(link,success,data){ if(success) alert("Delete completed successfully"); }', 
     'buttons' => array(
      'delete' => array(
       'label'=> 'Remove this device', 
       'imageUrl'=> Yii::app()->request->baseUrl.'/img/delete.png', 
       'url' => 'Yii::app()->controller->createUrl("controller/action", array("trace_id"=>$data["trace_id"], "mac"=>$data["mac"]))', 
       'click'=><<<EOD 

         function(){ 
         confirm('Are you sure?') 
         }EOD 
       ), 

ответ

0
  'status' => array(
       'label'=>"<i class='fa fa-eye-slash'></i>",  // text label of the button 
       'url'=>function ($data) 
       { 
        return $this->createUrl("counters/changeStatus",array('id'=>$data->counter_id, "status"=>$data->status ? 0 : 1 )); 
       },  // a PHP expression for generating the URL of the button 
       'imageUrl'=>false, // image URL of the button. If not set or fa lse, a text link is used 
       'options'=>array(
        'class'=>'btn roundPoint4 btn-xs green btn-warning statusBtn', 
        'title'=>"Activate/Deactivate", 
       ), // HTML options for the button tag 
       'click'=>'function(e){ 
                e.preventDefault(); 

          //open confirmation box write ur code here 


             }',  // a JS function to be invoked when the button is clicked 
       'visible'=>function() 
       { 
        return true; 
       }, // a PHP expression for determining whether the button is visible 
      ), 

Теперь я покажу вам, что делать в КОДЕКСУ, что вы хотите сделать

  'status' => array(
       'label'=>"<i class='fa fa-eye-slash'></i>",  // text label of the button 
       'url'=>function ($data) 
       { 
        return $this->createUrl("counters/changeStatus",array('id'=>$data->counter_id, "status"=>$data->status ? 0 : 1 )); 
       },  // a PHP expression for generating the URL of the button 
       'imageUrl'=>false, // image URL of the button. If not set or fa lse, a text link is used 
       'options'=>array(
        'class'=>'btn roundPoint4 btn-xs green btn-warning statusBtn', 
        'title'=>"Activate/Deactivate", 
       ), // HTML options for the button tag 
       'click'=>'function(e){ 
                e.preventDefault(); 

                $(this).parents("table").find("tr.workingRowClass").removeClass("workingRowClass"); 

                $("#secretForm").html(""); 
                var parts = getMyIdNew($(this).attr("href"), "/status/", "/id/") ; 
                setAction($("#secretForm"), "POST", parts[2], 1) 
                moslakeFormInput($("#secretForm") , "Counters[id]", "hidden", parts[1] , "id"); 
                moslakeFormInput($("#secretForm") , "Counters[status]", "hidden", parts[0], "status"); 
                moslakeFormInput($("#secretForm") , "operation", "hidden", "statusChange", "operation"); 

                $("#promptAlert").find(".modal-body").html("<p>Are you sure you want to change status of the this Item ?</p>"); 
                $("#promptAlert").modal("show"); $(this).parents("table").find("tr").removeClass("deleteMode"); 
                $(this).parents("tr").addClass("workingRowClass"); 


             }',  // a JS function to be invoked when the button is clicked 
       'visible'=>function() 
       { 
        return true; 
       }, // a PHP expression for determining whether the button is visible 
      ), 

У меня есть код копирования вставки. поэтому он будет дополнительным. Когда кто-то нажимает кнопку «Статус». Он откроет bootstrap modal. и попросите подтверждение. Выполняя это, я создал форму с действием и некоторые поля. и в этом модальном я продолжаю кнопку. на кнопку «Продолжить» нажмите кнопку «Форма». и при закрытии форма будет пустой. форма не будет отображаться без формы. и все поля будут скрыты .. Я знаю, что это сложнее, чем урс ... но я делаю это с сообщением ... НО НО ВЫ МОЖЕТЕ ПОЗВОЛЯТЬ ВАШУ КРЫШКУ КНОПКИ КНОПКИ В ЭТОМ ФУНКЦИИ И НА ЩЕЛКНИТЕ, ЧТО ЭТО БУДЕТ BE REDIRECTED

+0

Jaimin MosLake 'click' => 'function (e) {e.preventDefault(); alert ("hola");} ', так выглядит мой «щелчок» .. и он не будет запускать какой-либо javascript, что является основной проблемой здесь. – Himanshu97

+0

просто проверьте, загружен ли он в сценарий .... Yii загружает этот скрипт в скрипт tage до того, как теги тела заканчиваются ... поэтому проверьте, что ваш скрипт загружен ... вы загружаете страницу ur через ajax .. или renderPartial, поэтому проверьте все вещи ... это должно сработать .. Просто проверьте код ur, включенный в веб-страницу ... затем проверьте другие вещи –

+0

Я renderPartial(), поскольку у меня есть это gridview как виджет – Himanshu97