ถามเรื่องการ insert ข้อมูลจาก textbox ลง database ครับ

  • warning: realpath() [function.realpath]: SAFE MODE Restriction in effect. The script whose uid is 1005 is not allowed to access /tmp owned by uid 0 in /var/www/sites/sugree/codenone.com/subdomains/www/html/includes/file.inc on line 190.
  • warning: realpath() [function.realpath]: SAFE MODE Restriction in effect. The script whose uid is 1005 is not allowed to access /tmp owned by uid 0 in /var/www/sites/sugree/codenone.com/subdomains/www/html/includes/file.inc on line 190.

คือว่าผมต้องการที่จะป้อนข้อมูลผ่านทาง textbox ครับ แล้วกดปุ่ม submit จากนั้นก็ให้เก็บค่าที่ป้อนเข้าไป
เก็บใน session แล้วจึงแสดงค่านั้นออกมา เมื่อแสดงเสร็จแล้ว ก็มีปุ่ม submit เมื่อกดปุ่มก็ insert ข้อมูลเหล่านั้นลง database ต้องทำอย่างไรครับ

ท่านผู้รู้ทั้งหลายช่วยด้วยนะครับ

taiko_gogo's picture

ขอยกเค้ามาตอบที่นี่เลยละกันนะคับ
ผมให้
- มี tableอันนึง ชื่อ members ดีก่า เอาไว้เก็บข้อมูล มี 2 fields id (int), name (vchar)
แล้วก็ให้มี
- model ของ table ข้างบน
- controller ตัวนึง ผมขอใช้ชื่อ testละกัน
- view สำหรับ controller test ให้มี index.rhtml(สำหรับใส่ข้อมูล) กับ showResult.rhtml (สำหรับแสดงผล) นะคับ

ขอ assume ว่า คุณสร้างไอ้พวกนี้เป็นหมดแล้วละกันนะครับ
ผมเริ่มจาก testController ละกันนะ

>
class TestController < ApplicationController
  def index
    @member = Member.new
  end
 
  def showResult
    @member = Member.new(params[:member]) #สร้าง memberใหม่จาก parameter ที่ผู้ใช้ input มาจากหน้า index
    @member.save # save ข้อมูลแบบง่ายสุด ๆ   
        session[:name] = @member.name # เก็บค่าname ลงใน session
        @name = @member.name #อันนี้ไม่มีอะไรคับ สำหรับแสดงค่าโดยไม่ใช้ค่าใน session อันนี้แค่อยากให้เห็นว่าไม่ต้องใช้ sessionก็แสดงค่าได้อ่ะ
    @session_value = session[:name]#อันนี้เอาค่า nameใน session มาเก็บไว้ในตัวแปรเพื่อเอาไปแสดงผลคับ
  end
</blockcode>
 
สำหรับ index.rhtml (ขอแบบลวก ๆ ละกันคับ)
เราจะสร้าง textbox ใน form แล้วก็มีปุ่ม submitด้วย
<blockcode [type="ruby"]>
<html><body>
  <% form_tag ({:action=>"showResult"}) do-%>
    <%= text_field "member","name" -%>
    <%= submit_tag "submit" -%>
  <% end -%>
</body></html>
</blockcode>
 
แล้วก็ showResult.rhtml ก็ขอแบบลวก ๆ อีกแว้วว
<blockcode [type="ruby"]>
<html><body>
  แสดงค่าจาก session <%= @session_value -%><br/>
  แสดงค่าจากตัวแปรธรรมดา(ไม่ได้ผ่าน session) <%= @name -%><br/>
</body></html>
</blockcode>
 
ลำดับเหตุการณ์มันจะเป็นแบบนี้คับ
-ผู้ใช้เข้ามาที่ index.rhtml
-ข้อมูลถูกกรอกแล้ว submitผ่าน formในหน้า index.rhtml ไปยัง
action ที่ชื่อ showResult
-ข้อมูลถูกเก็บลงใน ตาราง member โดย Member
-เก็บข้อมูลลงใน session
-assignค่าตัวแปร sessionมาเก็บในตัวแปร
-หน้า showresult.rhtml ถูก render ค่าของตัวแปรถูกแสดงผล
 
จบแล้วจ้า
หวังว่าคงจาไม่งงนะคับ >_<

ขอบคุณมากครับท่านผู้รู้ ผมยังมีอะไรที่จะถามอีกเพียบเลยครับ
หวังว่าคงไม่รังเกียจที่จะตอบนะครั

ขอบคุณมากครับ

taiko_gogo's picture

อุ้ย อย่าเรียกผมแบบนั้นเลยคับ ในนี้มีคนเก่งกว่าผมตั้งเยอะแยะแหน่ะ
ผมก็ยังเป็นนักรบฝึกหัดอยู่เลยคับ >_< (หวังว่าคุณคงเคยเล่น final tactic นะ)
เรื่องตอบนี่ไม่รังเกียจคับ จะพยายามช่วยเต็มที่เลย ไม่เพียงเฉพาะผม แต่ทุกคนในนี้คงเป็นแบบนี้เหมือนกันหมดคับ
เพราะงั้นมีอะไรถามก็ไม่ต้องเกรงใจ เพราะถามมา ผมตอบไปผมก็ได้ความรู้เหมือนกันอ่ะ
ยังไงก็พยายามเข้านะคับ

the best way to learn faster is to learn together (credit : thaimacdev.com)

ย้าย Codenone

ประกาศย้าย Codenone ไปใช้ Forum ของ Blognone แทนครับ ตามไปตั้งกระทู้ต่อได้ที่ Codenone Forum (รายละเอียดอ่านจากกระทู้ ย้าย Codenone ไปรวมกับ Blognone)

กระทู้เก่าๆ จะย้ายตามไปในภายหลัง ตอนนี้ปิดการโพสต์กระทู้ไว้ เหลือไว้เฉพาะอ้างอิงเท่านั้น