2011-07-22 47 views

回答

0

這聽起來像是你想要從單一的HTML頁面上的2種不同的形式獲取數據。如果我正確理解你的話,這在後端是不可能的。當瀏覽器提交表單時,它只會提交該單一表單的字段。如果你想分享2種不同形式之間的值,則需要使用JavaScript來要麼...

  1. 使用一個單一的形式和動態添加/刪除字段,並設置操作URL
  2. 複製從非領域 - 當用戶點擊提交時(在瀏覽器實際發送請求之前)提交的表單提交表單。
  3. 從字段中獲取數據併合並在一起,然後通過AJAX發送請求並將瀏覽器重定向到結果頁面(或者對結果做其他操作)。

有意義嗎?

編輯:

關於你的評論說,選擇2爲你工作,這是非常簡單的:

$('#form-1').submit(function(){ 
    $('#form-2 [name]:not([type="submit"])').appendTo(this); 
}); 
+0

第二個是我需要的 –

0

我沒有太多的細節,但你可以做到這一點的一種方式,無論的形式是通過jQuery從文本字段中提取數據,然後對控制器進行AJAX調用:

因此,在您的application.js中,您可以這樣做:

$.ajax("/controller/action", { 
    cache: false, 
    data: { 
    _method: "POST", 
    textfield-data-param: (textfield-data) 
    }, 
    success: function (jqXHR, status) { 
    //Do something on a success 
    }, 
    complete: function (jqXHR, status) { 
    //do something on complete 
    }, 
    type: "POST" 
}); 

在你的控制器,你可以這樣做:

def action 
    @data = params[textfield-data-param] 

    respond_to do |format| 
     if @data.save 
     format.js { head :ok } 
     else 
     format.js { head :unprocessable_entity } # Maybe find a better status code to use. 
     end 
    end 
    end 

對不起,它是一個非常寬泛的答案,但希望它會給你一個領先。

相關問題