2017-01-28 25 views
-1

私はかなりレールが新しく、助けてください。javascriptから変数へ変数の値を渡す方法

これは私がfilename値は、このファイルに以下の

$(document).ready(function(){ 
$("#prefix, #client, #myFile").change(function(){ 
    concatenated_string = $("#prefix").val() + "_" + $("#client").val() + "_" + $("#myFile").val(); 
    $("#concatenated_string").val(concatenated_string); 
    myvar = concatenated_string.replace(/C:\\fakepath\\/i, ''); 
    myvar = myvar.replace(/\..+$/, ''); 
    myvar = myvar.replace(/\s+/, "_"); 

    var filename = myvar //This variable 

    $("#temp_display").text(filename) 

}) 
}) 

create_tableアクションが私のpage_controller.rbcreate_tableアクション

class PageController < ApplicationController 

    # before_action :authenticate_user! 
    #before_action :set_company, only: [:show, :edit, :update, :destroy] 
    before_action :authenticate_user!, only: [:index] 

    def home 
    end 


    def titlebar 
    end 


def insert_table 
    #redirect_to :action => "create_table" 
end 

    def create_table 

      filename = params[:filename] 

    end 
end 

これは何かあるにコントローラpage_controllerで渡すことにしたい私のjavascriptのですターミナルに入る。

Started POST "/page/create_table" for ::1 at 2017-01-28 20:45:05 +0530 
Processing by PageController#create_table as HTML 
    Parameters: {"utf8"=>"✓", "authenticity_token"=>"TAcnZfhr8Amg8/xupgJVlAosz+/hNPgFgxVT4cg5x+OKvRwvrtm6Z5momvQiHsYBcl1tZWUu525Z1VTxqWIu8Q==", "commit"=>"upload file"} 
    Rendering page/create_table.html.erb within layouts/application 
    Rendered page/create_table.html.erb within layouts/application (0.5ms) 
Completed 200 OK in 190ms (Views: 186.7ms | ActiveRecord: 0.0ms) 
+0

ある

<input type="hidden" name="filename" id="my_file_name" value=""> 

pavanにより示唆されるように、これは私の見解であるのですか? – Pavan

答えて

0

私は解決策を得ました。

は、これは私のjs

function myFunction() 
{ 
    concatenated_string = $("#prefix").val() + "_" + $("#client").val()  + "_" + $("#myFile").val(); 
$("#concatenated_string").val(concatenated_string); 
myvar = concatenated_string.replace(/C:\\fakepath\\/i, ''); 
myvar = myvar.replace(/\..+$/, ''); 
myvar = myvar.replace(/\s+/, "_"); 

var filename = myvar; 

$("#temp_display").text(filename); 
document.getElementById("my_file_name").value = filename; 
} 

これは `#のtemp_display`が参照するどのような私のコントローラ

def create_table 
     filename = params[:filename] 
     content = params[:file].path 
    end 
0

あなたは以下のような形で隠し入力フィールドを持つことができますが、create_tableアクションに値を取り込むことができるようにファイル名値が、追加することができたため。

#in your form 
<input type="hidden" name="filename" id="my_file_name" value=""> 

、スクリプト

$(document).ready(function(){ 
$("#prefix, #client, #myFile").change(function(){ 
    concatenated_string = $("#prefix").val() + "_" + $("#client").val() + "_" + $("#myFile").val(); 
    $("#concatenated_string").val(concatenated_string); 
    myvar = concatenated_string.replace(/C:\\fakepath\\/i, ''); 
    myvar = myvar.replace(/\..+$/, ''); 
    myvar = myvar.replace(/\s+/, "_"); 

    var filename = myvar //This variable 

    $("#temp_display").text(filename); 
    $("#my_file_name").val() = filename; //Add this line 

}) 
}) 

に、あなたはparams[:filename]ファイル名の値をキャプチャすることができます。

+0

ありがとう@pavanはそれを試してみます。 –

+0

パラメータ:{ "UTF8" => "✓"、 "authenticity_token" => "cIBAaWKbIXKisAnQgnfZUeHWXkYAbfKXS9CBEGugItK2OnsjNClrHJvrb0oGa0rEmaf8zIR37fyREIYACvvLwA =="、 "ファイル名" => ""、 "コミット" => "アップロードファイル"} @pavanファイル名がnilの午前ですターミナルでこれを取得する –

+0

@SagarRS 'console.log(filename);でコンソールのファイル名の値を調べてみてください。 – Pavan

関連する問題