Tôi đang tạo biểu mẫu timesheet bao gồm lịch cho phép người dùng chọn ngày cụ thể và tìm kiếm dự án. Tôi có chức năng này hoạt động. Những gì tôi về cơ bản có điều này là:Thêm hàng mới động với Javascript/JQuery/Rails 3
Một khi người dùng tìm kiếm dự án của họ và nhấn nút dấu cộng, mà theo quy định của dự án. Trong trường hợp này là Asda người dùng sau đó sẽ nhấp vào biểu tượng dấu cộng sẽ tạo một hàng mới và đặt nó vào bảng 'nhiệm vụ cho dự án. Làm thế nào bạn có thể làm điều này trong Javascript/JQuery.
Xin lỗi vì đã hỏi những gì có thể được xem như một câu hỏi cơ bản, nhưng tôi vẫn đang học Javascript/JQuery.
Tôi hiện có biểu tượng dấu cộng được liên kết với project_project_tasks_path(project.id)
. Đây chỉ là tạm thời.
Đây là những gì tôi có cho đến nay:
<div class="left">
<table border="2" width="" id='projects' class='datatable'>
<thead>
<tr>
<th>Number  </th>
<th>Name</th>
<th></th>
</tr>
</thead>
<tbody>
<% @projects.each do |project| %>
<tr>
<td><%= project.project_number %></td>
<td><%= project.project_name %></td>
<td><%= link_to image_tag("icons/add.png"), project_project_tasks_path(project.id), :remote => true %></td>
<!-- link_to image_tag("icons/add.png"), tasklist_path(project.id), :as => "tasklist" -->
</tr>
<%- end -%>
</tbody>
</table>
</div>
<div class="right">
<b>Recently Viewed</b>
<table>
<tr>
<th>Project No.</th>
<th>Project names</th>
<th>Project Leader</th>
<th></th>
</tr>
<tr>
<td>123</td>
<td>Test</td>
<td>1</td>
<td><%= link_to image_tag("icons/add.png") %></td>
</tr>
</table>
</div>
</fieldset>
<fieldset>
<b><center>Hours for Week commencing: <span id="startDate"><%= Date.today.beginning_of_week.strftime('%d/%m/%Y') %></span></center></b>
</fieldset>
<!-- Task list table -->
<div style="float: right; width: 300px; padding-left: 20px;">
<fieldset>
<b>Tasks for project</b>
<ul id="task_list">
</ul>
</fieldset>
</div>
<!-- Hours list table -->
<fieldset>
<table>
<tr>
<td>Leave</td>
<td><input class="dayinput" type="text" name="Leave"></td>
</t>
<tr>
<td>TOIL</td>
<td><input class="dayinput" type="text" name="TOIL"></td>
</tr>
<tr>
<td>Sick</td>
<td><input class="dayinput" type="text" name="Sick"></td>
</tr>
<tr>
<td>Total</td>
<td><input id="total" class="total_low" type="text" value="0" disabled="">
</tr>
</table>
</fieldset>
được sửa đổi:
tôi đã tạo ra một task_list.js.erb đó là như sau:
$('#task_list').html('');
<% @project.project_tasks.each do |task| %>
$('#task_list').append('<ul><%= task.task_name %>');
<% end %>
Dự án Bộ điều khiển
def index
# check if we've got a project id parameter
if(params[:project_id].nil?)
@project = nil
else
@project = Project.find(params[:project_id])
end
if @project.nil?
@project_tasks = ProjectTask.all
else
@project_tasks = Project.find(params[:project_id]).project_tasks
end
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @project_tasks }
format.js # index.js.erb
end
end
Từ những thay đổi được thực hiện, nó sẽ tạo ra:
JQuery UI code autocomplete:
$(function() {
function log(message) {
$("<div/>").text(message).prependTo("#log");
}
$("#tags").autocomplete({
source : function(request, response) {
$.ajax({
url : "/projectlist",
dataType : "json",
data : {
style : "full",
maxRows : 12,
term : request.term
},
success : function(data) {
var results = [];
$.each(data, function(i, item) {
var itemToAdd = {
value : item,
label : item
};
results.push(itemToAdd);
});
return response(results);
}
});
}
});
});
Bạn cần chỉ định trong câu hỏi liệu dự án của bạn sẽ được lưu vào cơ sở dữ liệu khi chúng được thêm phía máy khách hay người dùng sẽ gửi biểu mẫu sau khi dự án được thêm vào. Điều này sẽ xác định xem một yêu cầu ajax là cần thiết. Từ thực tế là một số dự án được chỉ định này dường như đề xuất một yêu cầu ajax nhưng tôi chỉ có thể đoán. – mark
điều này sẽ giúp bạn bắt đầu, http://railscasts.com/episodes/197-nested-model-form-part-2 – rubish
Xin lỗi vì trả lời muộn, các dự án được hiển thị, là từ một bảng có sẵn gọi là dự án.Tôi đang cố gắng để người dùng nhấp vào nút dấu cộng và sau đó thêm dự án đã chọn và đặt nó vào một hàng mới – David