2012-04-06 17 views
1

Ich versuche, eine einfache Sinatra-App mit einer Seite mit einem Textbereich mit einem Absenden-Taste darunter zu erstellen. Darunter befindet sich ein weiterer Textbereich, der den geänderten Text aus dem ersten Textfeld anzeigt, nachdem auf die Schaltfläche zum Senden geklickt wurde.lesen Sie Text aus Textarea, ändern Sie Text mit Ruby, und geben Sie modifizierten Text

Sinatra ist mir neu, so ist dies das Beste, was ich mit so weit kommen können:

CH.erb

<html> 
<head> 
    <title>CH</title> 
</head> 
<body> 
    <div id="main"> 
     <form action="" method="post"> 
      <textarea id="orig" rows="25" cols="150"></textarea> 
      <br /><br /><br /> 
      <button type="submit">Submit</button> 
     </form> 
     <br /><br /><br /> 
     <textarea id="result" rows="25" cols="150"></textarea> 
    </div> 
</body> 
</html> 

CH.rb

require 'sinatra' 

get '/hi' do 
    erb :CH 
end 

post '/hi' do 
    # ???? 
end 

Antwort

3

verwenden für Ihre Antwort Route:

post '/hi' do 
    @result = params['orig'] 
    erb :CH 
end 

a nd ändern Ihre Ansicht wie so:

<textarea id="result" rows="25" cols="150"><%[email protected]%></textarea> 

ich persönlich befürworten Haml über Erb, aber zu jeder seine/ihre eigene.

+0

Danke für die Antwort Phrogz. Ich habe Ihren Code kopiert/eingefügt, aber leider sind beide Textfelder leer, nachdem Sie auf Senden geklickt haben. Irgendeine Idee warum? Ich bin nicht gegen eine Haml-Antwort, ich war nur faul. – jack

+0

Whoops! Sie benötigen 'name =" orig "' auch in Ihrem Textfeld. – Phrogz

+0

Das hat den Trick gemacht. Vielen Dank! – jack

Verwandte Themen