关于rails的ajax技术问题

发布于 2021-11-13 04:36:59 字数 2560 浏览 731 评论 2

有个form表单,选择条件,然后点击查询,在controller层查询结果,结果查询后显示在rightmain的div块内。想用ajax技术做到局部刷新,使表单位置的值不变,只改变rightmain的地方。运行环境是ruby1.9.2,rails3.0.7,mysql6.0.

在controller里的代码

class FdinesearchController < ApplicationController
def fdinesearch
	t = Time.new
	time = t.to_a
	@thisyear = time[5]
	@agoyear = (time[5].to_i - 1).to_s
	@nextyear = (time[5].to_i + 1).to_s
	@sadines = DineAllowance.all
	@sadines = DineAllowance.find(:all,:conditions  => "da_ym = @thismonth  ")
	@cfs = Cofficient.all
	@cfs.each do |co|
		@sum  = co.work_dine_price
	end
	year = params[:year]
	month = params[:month]
	dname = params[:depart]
	yearmonth = year.to_s + "/" + month.to_s
	if params[:look]
		if dname == '0'
		@sadines = DineAllowance.find(:all,:conditions  => ["da_ym = ? ",yearmonth])	
		else
		#@sadines = DineAllowance.find(:all,:conditions  => ["da_ym = :yearmonth and dname = :dname",{:yearmonth => yearmonth,:dname => dname}])	
		end
	end
end
end

 html中的代码

<div id="select" style="padding-left:20px">
     <form name="form1" id="form1">
	   <select name="depart" id="select0">
				<option value='0'>全员</option>
					
		</select>
			&nbsp;&nbsp;
			<select name="year" id="select1">
				<option><%=@thisyear%></option>
				<option><%=@agoyear%></option>
				<option><%=@nextyear%></option>
			</select>
			<label for="select1">年</label>
			&nbsp;&nbsp;
			<select name="month" id="select2">
				<option value='6'>6</option>
				<option value='7'>7</option>

		</select>
			<label for="select2">月</label>
			&nbsp;&nbsp;
			<%= submit_tag '查看', :name => 'look', :remote => true%> 	
			
	  </form>
		
      </div>
	  <br>
      <div id="rightmain">
		<table id="customers" width="100%">
  	<tr>
  		<th width="10%">序号</th>
		<th width="10%">编号</th>

	</tr>       
<%@sadines.each do |sd|%>
	<td><%=sd.id%></td>
	<td><%=sd.peopleid%></td>

<%end%>
</table>
	    
      </div>

因为初次写rails,代码写的可能不是非常好

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

少女净妖师 2021-11-16 08:54:49

这里有参考:http://chloerei.com/2012/04/21/rails-3-2-ajax-guide/

偏爱自由 2021-11-14 10:07:47

代码实在惨不忍睹...

既然html是erb,那么最好用helper中的form_for或form_tag方法构建表单。要实现ajax,只要加上:remote => true就可以了。至于服务端返回,如果ajax较少可以直接返回js让客户端执行。

controller中对应action的最后加上:

respond_to do |format|
  format.js
end

然后和erb差不多,在views中创建*.js.erb,内容就是普通的js代码,可以用<% %>插入ruby代码,之后就看你了。。。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文