【发布时间】:2016-05-20 16:21:44
【问题描述】:
我有一个页面,在加载时调用 Document.ready jQuery 脚本,该脚本使用今天的日期作为输入,向 PHP 脚本发送 AJAX 请求,以查询数据库中包含该日期的任何“条目”。如果它找到一些,它们被添加到一个数组中,然后 JSON 编码并返回到 jQuery 脚本,然后在 for 循环中,使用 JSRender 模板为每个“条目”吐出一个<div>。这些<div>s 存在于一个表单中。
有一个按钮可以创建一个新的“条目”,按下该按钮时只会克隆最后一个“条目”,将其擦除干净,为输入数组 (input name="TI[new1][ ]") 提供一个新索引 ( 'new1' 位)并将其附加在最后一个(在表单内)下。提交表单时,会发出另一个 AJAX 请求来写入/更新数据库。
我不太清楚的是如何在创建新条目时重新加载表单,以便它获取当前加上具有正确 id 的新条目,因为目前表单提交,但当然不会刷新,因此条目仍然具有“newx”ID,而不是写入数据库时分配的 ID。
<form>
<div id="empty-for-jsrender-output">
</div>
<script (template for jsrender)></script>
</form>
<script src="get-entries"></script>
// get-scripts
calls ajax with var for current date
returns json array
for each nested array, calls jsrender script, which spits out a div block per entry within #empty-for-jsrender-output
那么,如何让表单或 #empty-for-jsrender-output 重新加载,就像在我提交带有新条目的表单后首次加载页面时一样?
抱歉,编辑,忘记添加我已经在 ajax.done 部分的提交条目 js 脚本中尝试过这个:
$.getScript("assets/js/getEntries.js");
尝试再次运行在页面实际重新加载时运行的相同脚本(有效)。但这所做的只是清空 div...它不会再次填充它。
【问题讨论】:
标签: jquery ajax jsrender jsviews