2013-04-24 2 views
0

Я работаю над приложением Rails 3. Здесь в представлении отображаются все файлы excel, загруженные пользователем. Кнопка для выполнения всех отмеченных флажков файлов уже присутствовала с удалением для каждого файла отдельно. Теперь Я должен добавить кнопку «удалить», чтобы удалить выбранные файлы. Я добавил, что кнопка n изменила функцию, вызванную этой формой jus, чтобы отобразить «in execute» и «in delete» на данный момент, чтобы проверить, является ли вторая кнопка «удалить» функциональной. Но каждый раз, когда удаляется щелчок, он печатает «in execute» только в cmd. Я думаю, что связанный с AJAX код, написанный в представлении «список», является проблемой. Помощь Pls !! Скажи мне, почему это будет выполняться всегда? Соответствующий код здесь:Добавлена ​​кнопка отправки вызывает функцию самой ранней кнопки

PS: Я ВГА использовал if params[:commit]="Delete" & if params[:delete_button] также в controller.rb к, но не помогло

list.html.erb (вид, который отображает все файлы)

<% if @files.length > 0 %> 
<h2 id='comments'>Uploaded Excel Files are as listed below for Edit/Delete/Execution</h2> 
<div id='checkone' class='hide'>Please check atleast one excel file to execute</div> 
    <% ajax_str = "new Ajax.Request('/account/execute_testcases', {asynchronous:true, evalScripts:true, onComplete:function(request){adjust_sidebar();Element.show('msg');Element.hide('waitid');Element.hide('disableexecuteid');Element.show('executeid');}, onLoading:function(request){Element.show('waitid');Element.hide('msg');Element.hide('executeid');Element.show('disableexecuteid');}, parameters:Form.serialize(this)}); return false;".html_safe %> 
    <%= form_for 'file_names', :url => {:controller => 'account', :action => 'execute_testcases'}, :remote => true, :html => {:name => 'frmExecute', :onsubmit => ajax_str }, :id =>'execute_tc' do |f| %> 
    <table> 
     <% if @file_count > 1 && @error_in_all_files == false %> 
     <tr> 
     <td> 
     <input type='checkbox' name='chkAll' onclick='checkAll();'> 
     <span class='text'>Check All/Decheck All</span> 
     </td> 
     </tr> 
     <% end %> 
    </table> 
    <table class='upload'> 
    <% for a in @files %> 
     <tr> 

     <td> 
     <% file_id = a.id.to_i %> 
     <% if(@excel_errors[file_id].nil? || @excel_errors[file_id].empty?) && a.file_type.to_i != 1 %> 
      <input type='checkbox' name = "excelfile[]" value="<%= a.excel_filename %>,<%= a.excel_filename_with_timestamp %>"> 
     <% else %> 
      <input type='checkbox' name = "excelfile[]" value="<%= a.excel_filename %>,<%= a.excel_filename_with_timestamp %>" disabled=true> 
     <% end %> 
     <a href="open_excel_file/<%= a.id %>" title='Click to open' class='nodecoration'><%= a.excel_filename %></a> 
     </td> 
     <td> 
     <%= link_to(image_tag("/images/b_edit.png", :border => 0, :title => 'Edit'), :action => 'upload_file', :file_id => a.id) %> 
     </td> 
     <td> 
     <a href="delete/<%=a.id %>"><img src='/images/b_drop.png' border=0 title='Delete' onclick="return confirm('This will delete the related reports too. Are you sure to delete?');"></a> 


     </td> 
     <td> 
      <% 
       if [email protected]_errors[file_id].nil? && [email protected]_errors[file_id].empty? 
       @joined_excel_errors = @excel_errors[file_id].join(', ') 
      %>  
       <a href='#' onclick="show_excel_errors(<%=file_id%>);" title="Error">Error</a> 
      <% end %> 
     </td> 

     </tr> 
     <tr id="excel_error_<%=file_id %>" style='display:none;'> 
      <td colspan=4> 
      <% if [email protected]_errors[file_id].nil? && [email protected]_errors[file_id].empty? %> 
       <div class="padder"> 
       <% for error_value in @excel_errors[file_id] %> 
        <font color='maroon'><%= error_value %></font><br> 
       <% end %> 
       </div> 
      <% end %> 
      </td> 
     </tr> 
    <% end %> 
     <tr><td>&nbsp;</td></tr> 

     <tr> 
     <td> 
     <% if @error_in_all_files == false %> 
     <span class='executebutton' id='executeid'> 
      <%= f.submit "Execute", name: 'execute_button', :onclick =>"return checkSelected();" %> 
     </span> 
     <span class='deletebutton' id='deleteid'> 
      <%= f.submit "Delete", name: 'delete_button', :onclick =>"return checkSelected();" %> 
     </span> 
     <% end %> 
     <span id='disableexecuteid' class='executebutton' style='display:none;'> 
     <input type='submit' value="Execute" disabled="disabled"> 
     </span> 
     <span id='waitid' style="display:none;" class='text'> 
      <br>Executing Test Cases...Please wait...<%= image_tag("/images/wait26trans.gif", :border => 0) %> 
     </span> 
     <span id='msg' style="display:none;" class='text'> 
      <br><br> Click here to <%= link_to 'View Test Results', {:controller => 'account', :action => 'recent_test_results'}, :class => 'brownlink' %> 
     </span> 
     </td> 
     </tr> 
    </table> 
    <span id='subject_list'>  
    </span> 
    <% end %> 
<% else %> 
No test case sheets found! 
    <br><br> 
    <%= link_to '>> Upload File', {:controller => 'account', :action => 'upload_file'}, :class => 'brownlink' %> 
<% end %> 
<% for i in 1..10 %> 
    <div>&nbsp;</div> 
<% end %> 

controller.rb

def execute_testcases 
    if !params[:execute_button].nil? 
    puts "in execute" 
    # file_names = [] 
    # originalfile_filewithtime = [] 
    # original_file_map = {} 
    # originalfile_filewithtime = params[:excelfile] 
    ...... 
    # SOME CODE HERE 
    ...... 
    # render :update do |page| 
     # page.replace_html :subject_list, :partial => 'show_output', :locals => {:new_file_map => @new_file_map} 
     # page.visual_effect :highlight, 'subject_list', :duration => 2 
     # flash[:display][email protected] 
    #end 
    # puts @execmsg 

    elsif !params[:delete_button].nil? 
    puts "in delete" 
    end 

    end 
+0

@Dave Newton, Hey Dave, могу я знать, что вы отредактировали в вопросе? –

+0

Да, нажав ссылку, которая указала, когда было сделано редактирование. Я удалил тег из заголовка (у нас уже есть теги), удалили гигантские заголовки из имен файлов и удалили ненужные теги. Если бы я не был на моем телефоне, я бы также удалил много ненужного HTML и кода, чтобы помочь сузить вопрос: см. [Малый, самосохраненный, правильный пример] (http://sscce.org/) для больше информации, но вкратце, что вопросы должны включать только контекст, необходимый для их понимания. –

ответ

0

Я понял, что он должен был что-то сделать с Form.serialize(this) AJAX, который сериализует все. т.е. Он вызывает функцию первой кнопки в представлении независимо от отсутствия присутствующих кнопок отправки

Смежные вопросы