2011-10-06 118 views
1

我正在研究Rails 3中的原型,並最終使用了一些jquery(我的第一次,它非常甜)。雖然,從我的視圖中提取數據(來自Impromptu JQuery調查),並將數據提交到我的數據庫(sqllite3)時,似乎卡住了。讓我來解釋一下這個頁面是如何工作的:如何將jquery或javascript數據傳遞給Ruby on Rails模型?

  • 當選擇一個下拉選項時,彈出調查。此外,這是一種模式形式,大約有7個問題。

就是這樣。我希望的結果是在用戶通過單擊完成提交表單後,每個回答的問題都需要進入數據庫。一些輸入字段是複選框和下拉菜單。

下面是代碼的樣本,從調查的最後一個問題:

state7: { 
        html:'Personality Type <div class="field"><select name="personality" id="rate_find"><option value="enfp">ENFP</option><option value="INTJ">INTJ</option><option value="ESTJ">ESTJ</option><option value="INTP">INTP</option></select></div>', 
        buttons: { Back: -1, Cancel: 0, Finish: 1 }, 
        focus: 2, 
        submit: function(v, m, f){ 
         if (v == 0) 
          $.prompt.close() 
         else 
          if (v == 1) 
           return true; //we're done 
          else 
           if (v = -1) 
            $.prompt.goToState('state6');//go back 
         return false; 
        } 
       } 
      } 

      $.prompt(temp,{ 
       callback: function(v,m,f){ 
        var str = "You can now process with this given information:<br />"; 
        $.each(f,function(i,obj){ 
         str += i + " - <em>" + obj + "</em><br />"; 
        }); 
        $.prompt(str) 
       } 
      }); 
     } 
+0

不知道問題是什麼(或代碼是什麼);如果有表單,它會發送參數 - 你不能訪問這些參數嗎?數據模型是什麼樣的? –

+0

所以我可以使用參數?我還沒有創建一個模型,只有視圖和控制器。我想我很困惑,我將如何從JavaScript獲取值並傳遞它們。 – johnnewbie

+0

而代碼來自調查模態表單。 State7表示問題7,最後一段代碼將所有問題寫入表單。 – johnnewbie

回答

0

鍵/包含您通過即興彈出得到的信息值對需要被堆積成像一個POST請求你可能期望在regular form。如果您的數據進入數據庫時​​有ActiveRecord模型,那麼您可以在視圖中創建一個具有觸發彈出窗口的下拉列表的表單,但只需隱藏整個表單即可。然後,在你的調查結束,你可以去通過,並賦值爲正確的輸入(例如

$.each(f,function(i,obj){ 
    $('input#' + i).val(obj); 
}); 

),並最終「完成」按鈕就可以在表單上trigger the submit event。您可以查看this question以瞭解如何使用jquery檢查複選框。

希望有幫助!

+0

是的。再次感謝。 – johnnewbie

相關問題