动态添加表单字段行 - cakePHP

2024-01-16

我有一个发票表和一个invoice_item 表。每个发票有许多发票项。

创建发票时,系统会向用户显示一个包含发票表单字段的表单以及包含发票项表单字段的行。

我想要做的是有一个“添加新项目”链接,可以动态(jQuery、AJAX)添加新的项目字段行。用户应该能够添加任意多的行,并且每个新行应该出现在最后一行的下方。

当然,行字段属性也必须正确,以便可以使用 saveAll 方法轻松插入数据。

使用 CakePHP 实现此目的的最佳且最正确的方法是什么?我正在使用 CakePHP 2.4.7。


以下是我如何处理包含隐藏 id、标签和输入字段的数据,所有数据都包含在字段集中。您可以使用实际的表格来概括它。

以下是为两组字段生成的 HTML 以及单击以添加行的链接:

   <fieldset>
   <input type="hidden" name="data[VmfrDesignatedIncome][0][id]" value="668" id="VmfrDesignatedIncome0Id"/>
   <div class="input text">
   <label for="VmfrDesignatedIncome0Designation">Designation</label>
   <input name="data[VmfrDesignatedIncome][0][designation]" value="blah" maxlength="512" type="text" id="VmfrDesignatedIncome0Designation"/></div>
   </fieldset>

    <fieldset>
    <input type="hidden" name="data[VmfrDesignatedIncome][1][id]" value="669" id="VmfrDesignatedIncome1Id"/>
    <div class="input text">
    <label for="VmfrDesignatedIncome1Designation">Designation</label>  

    <input name="data[VmfrDesignatedIncome][1][designation]" value="blah2" maxlength="512" type="text" id="VmfrDesignatedIncome1Designation"/></div>
    </fieldset>

     <a href="#" id="addrow">Add row</a>

这是 Javascript,它克隆页面上的最后一个字段集,然后修改 id、名称和字段值以将其中的数字加一。请注意,选择器必须使用>子选择器。

/* As the strings to the function below may have [ or ]
** we want to stop it being treated as a regexp
*/
RegExp.quote = function(str) {
     return str.replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1");
 };

function findNumberAddOne(attributeString) {
    /*Finds the number in the given string
    ** and returns a string with that number increased by one
    */
    var re = new RegExp("(.*)([0-9])(.*)");
    var nPlusOne = attributeString.replace(re, "$2")+"+1";
    var newstr = attributeString.replace(re, "$1")+eval(nPlusOne)+attributeString.replace(re, "$3");
    return newstr;
}

$(document).ready(function() {
/* Duplicate the last set of designated income fields and increase the relevants id/name etc.
** so that it works as a new row in the table when saved*/
    $('#addrow').click(function() { 
        $('fieldset:last').clone().insertAfter('fieldset:last');
        $('fieldset:last > input').attr('id',findNumberAddOne($('fieldset:last > input').attr('id')));
        $('fieldset:last > input').attr('value',''); /*Blank out the actual value*/
        $('fieldset:last > input').attr('name',findNumberAddOne($('fieldset:last > input').attr('name')));
        $('fieldset:last > div > label').attr('for',findNumberAddOne($('fieldset:last > div > label').attr('for')));
        $('fieldset:last > div > input').attr('id',findNumberAddOne($('fieldset:last > div > input').attr('id')));
        $('fieldset:last > div > input').attr('value',''); /*Blank out the actual value*/
        $('fieldset:last > div > input').attr('name',findNumberAddOne($('fieldset:last > div > input').attr('name')));
    });
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

动态添加表单字段行 - cakePHP 的相关文章

  • 为什么jQuery一开始就有一个“window=this”并说它会加速对window的引用?

    当我打开 jQuery 的源代码时 我发现了这一行 var Will speed up references to window and allows munging its name window this 这条线路为何以及如何加速 ja
  • 无法从本地文件夹运行 Jquery

    你好 我是网络开发新手 我需要与JQuery 即使我已经成功尝试过一个jquery但仅在将文件复制到我的在线 ftp 文件夹后 我完全无法从本地文件夹运行它 请解释一下 如何我可以测试一些新脚本吗 进行额外的练习将文件复制到 ftp 文件夹
  • JSON字符串转JS对象

    我正在使用 JS 对象通过 Google 可视化创建图表 我正在尝试设计数据源 首先 我在客户端创建了一个 JS 对象 var JSONObject cols id date label Date type date id soldpenc
  • Javascript 当我们在 Chrome 中选择“停留在页面上”时如何调用函数

    请在 Chrome 浏览器中检查我的代码 如果您点击刷新 系统会提示您 2 个选项 离开此页面并 保持此页上 当我点击2 停留在此页面按钮它必须激活我的自定义功能显示消息 任何人都可以为我提供解决方案吗
  • 导出具有高质量图像的画布的最佳实践是什么?

    我需要你的帮助 我解释一下我的情况 我正在使用 Fabric js 库在我的应用程序中放置形状 文本等 我的画布尺寸为 1000x1000 像素 约 26 45x26 45 厘米 我有一个图像上传脚本 仅用于上传高质量图像 例如 300 d
  • 在移动浏览器或 PhoneGap 应用程序之间进行检测

    是否可以使用 JavaScript 检测用户是否通过浏览器或应用程序进行访问 我正在通过网页和 PhoneGap 应用程序开发适用于多个移动操作系统的混合应用程序 目标是 独立于部署目标使用相同的代码 仅当用户代理是应用程序时添加 Phon
  • 这段 jquery 代码可以写得更短吗? (初学者)

    这是我第一次在 stackoverflow 上提问 所以如果我做错了什么请原谅我 我也是 jquery 的新手 但通过阅读和教程 我设法创建了一个工作示例 下面的代码是我创建的 这意味着我有三个带有可拖动需求的列表和三个可以删除需求的占位符
  • SELECT COUNT() 与 mysql_num_rows();

    我有一个大表 60 数百万条记录 我正在使用 PHP 脚本来浏览该表 PHP 脚本 带分页 加载速度非常快 因为 表引擎是InnoDB因此SELECT COUNT 非常慢并且mysql num rows 不是一个选项 所以我将总行数 我用来
  • PHP 和 MySql 检查表是否为空

    我有点菜鸟 而且我很难过 我需要一些代码来搜索数据库表以查找与 id 变量匹配的行 我需要抓取该表 描述 中的一个字段 如果它为空 我需要显示一条消息 如果不是另一条消息 这是我的代码 我知道我需要添加 mysqli 转义字符串 只需从内存
  • 如何按日期升序对对象进行排序?

    如果我有一个对象列表 var objectList LIST OF OBJECT each object列表中包含三个属性 name date gender 如何按 对列表中的对象进行排序date 属性升序 the date 属性包含字符串
  • Laravel 上的图像更新并删除旧图像

    尝试在我的更新控制器中实现更新文章似乎可行 但问题是当我只想更新帖子而不上传图像时 旧的总是会被删除 但这是不应该的 这是我的商店功能 public function store Post post post gt update this
  • jquery 验证最小长度规则不起作用

    我有一个带有密码字段的表单 密码长度必须至少为 8 个字符
  • PHP随机输出数组元素

    我如何从大约 20 个元素的数组中随机回显 5 个元素 Thanks 这有效吗 values array rand input 5 或者 作为更灵活的功能 function randomValues input num 5 return a
  • AngularJS 与(Angular JS + jQuery)

    我有一个关于仅使用 AngularJS 和纯 JavaScript 以及使用 AngularJS 和 jQuery 时的性能问题 ex app directive fitHeight function window return restr
  • 在 Bluemix 中激活 PHP 扩展

    这纯粹是 Bluemix 问题 我的代码在本地主机上顺利运行 但是当我将其迁移到 Bluemix 时 我的数据库连接失败了 检查日志 我发现问题 调用未定义的函数 mysqli init HTTP 响应 500 我发现扩展已被禁用以使其更小
  • 在成功回调之前修改 JSONP 结果

    我想从外部服务加载一些 JSON 数据 然而 它提供 foo bar useful 而我真正关心的是 有用 的部分 我需要将那部分传递给success打回来 我正在尝试使用Deferred一次从多个数据源加载 类似this https st
  • 在 CakePHP 中向文章添加评论

    我正在学习 CakePHP 这是我的第一个 MVC 我有一些 最佳实践 问题 这是我对显示新闻文章的看法 h1 h1 p p div class comment style margin left 50px p p div
  • jQuery 不断 ping 以获得 Ajax 响应

    如何使用 jQuery 不断运行 PHP 脚本并每秒获取响应 并将鼠标上的少量数据发送到同一脚本 我真的需要添加一些随机扩展才能让这样一个简单的计时器工作吗 迭代是人类的 递归是神圣的 L 彼得 多伊奇 http www devtopics
  • 如何使用 jquery 生成并附加随机字符串

    一般性 我想使用 jQuery 或 javascript 将随机字符串附加到元素的属性 规格 我需要引用 CDN 上的 CSS 文件 不幸的是 每次更新该 CSS 文件时 CDN 都会更改该文件的 URL 所以我不能简单地引用静态 URL
  • File_get_contents($url): 无法打开流

    我有一个脚本 我使用以下方法读取文件 file get contents urlencode url 我收到此错误 failed to open stream HTTP request failed HTTP 1 0 400 Bad req

随机推荐

  • 信号如何与序列点交互?

    C89 标准规定 At sequence points volatile objects are stable in the sense that previous evaluations are complete and subseque
  • VueJS 从不同的路线滚动到部分

    我正在尝试使用 Vue 和 Vue Router 使用历史模式 滚动到页面上的锚点 在索引页上时 滚动行为通过跳转到该部分按预期工作 但是 当我在另一个页面时 它会在顶部加载索引页面 而不是锚点指向的位置 我确信这是一件非常简单的事情 但我
  • 如何在页面底部创建dock式工具栏?

    like in http www online photoshoptutorials com 2008 08 folding corners html http www online photoshoptutorials com 2008
  • 如何将参数传递给事件处理程序?

    我有一个函数对象 我想使用 jquery 在单击时向其传递参数 但它不起作用 我不明白其背后的概念 谁能解释一下我哪里出错了 让您正在调用的函数在闭包中返回一个具有名称的函数 并通过参数传递 div click fn clik Mike v
  • 将图像添加到 Tkinter Entry

    使用 tkinter 我尝试在条目小部件的边框内显示图像 我尝试在谷歌中搜索 但没有成功 有人知道该怎么做吗 没有任何功能或属性允许图像位于 Entry 小部件的边界内 但是 您可以很容易地模拟它 方法是将图像和条目小部件放入框架内 从条目
  • cython 中融合类型的替代品

    我正在努力使用 python C api 将最初用 C 编写的 python 模块重写为 Cython 该模块还使用 NumPy 该项目的一个主要挑战是保持模块当前的速度 并且它应该适用于所有 Numpy 数据类型 我正在考虑使用融合数据类
  • wint_t 总是至少与 wchar_t 一样大吗? unsigned short 如何满足 wint_t 的要求?

    似乎每个人都假设wint t至少与wchar t 然而C标准允许wchar trange 的值不直接对应于扩展字符集中的任何字符 价值WCHAR MIN and WCHAR MAX不一定对应于扩展字符集的成员 and wchar t 它是一
  • 在网格视图中为复选框列生成新列

    我使用数据表作为网格视图的数据源 DataTable table new DataTable table Columns Add Dosage typeof int table Columns Add Drug typeof string
  • java.lang.OutOfMemoryError:Java堆空间已满100000条记录

    尝试使用以下代码编写Excel文件 public static void main String args XSSFWorkbook workbook new XSSFWorkbook XSSFSheet sheet workbook cr
  • 如何通过 Web.config 或 C# 将所有内容重定向到 https://www。网站的版本?

    我有一个托管在 GoDaddy 上的 ASP NET 网站 我需要将每个请求重定向 301 到https www example com whatever https www example com whatever 例如 http exa
  • 在Android中解析巨大的JSON对象?

    Android中如何解析巨大的JSON文件 当我解析这样的文件时 我在日志上看到类似这样的内容 04 05 15 55 46 490 DEBUG dalvikvm 3847 GC freed 12159 objects 557744 byt
  • Tomcat 6 与 servlet 3 规范

    与此相反文档 http tomcat apache org whichversion html Tomcat 6 可以使用 Servlet 规范 3 吗 是否可以将 servlet 3 规范与 tomcat 6 一起使用 我怀疑这是一个实用
  • 如何创建“显示更多”按钮并指定最初可以显示多少行文本

    我正在寻找一种方法在我的响应式网站上创建滑出 显示更多 功能 该功能在两行的一个段落 我之前已经通过静态网站实现了这一点 通过对容器应用设定的高度并使用overflow hidden 然后对容器的高度进行动画处理 但为了响应 容器会在不同的
  • sorl 缩略图 + django 生产中的问题

    我正在 Django 中使用 sorl 缩略图 在我的本地设置中它工作正常 但在生产中未制作缩略图 我的代码如下所示 load thumbnail thumbnail up image 32x32 crop center as im img
  • 您可以从 CakePHP 中的视图调用控制器函数吗?

    我想从视图调用控制器函数 这在 Cake PHP 中可能吗 可以通过请求操作方法 http book cakephp org 2 0 en views html requesting elements from a plugin 但不建议这
  • 使用peewee访问远程MySQL数据库

    我正在尝试使用 peewee 连接到 Amazon RDS 上的 MySQL 数据库 但无法使其工作 我是数据库新手 所以我可能在做一些愚蠢的事情 但这就是我正在尝试的 import peewee as pw myDB pw MySQLDa
  • Python质数检查[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我写了这个非常简单的素数检查 pri
  • 为什么子线程无法访问flask_login中的current_user变量?

    我正在写一个烧瓶应用我正在尝试插入一个多线程实现对于某些服务器相关的功能 我注意到这种奇怪的行为 所以我想了解为什么会发生这种情况以及如何解决它 我有以下代码 from flask login import current user log
  • 布尔数组转整数

    python 中是否有任何内置函数可以转换 bool 数组 表示字节中的位 如下所示 p True True True False True False False True 像这样的字节数组 bp byteArray 233 我知道哦 n
  • 动态添加表单字段行 - cakePHP

    我有一个发票表和一个invoice item 表 每个发票有许多发票项 创建发票时 系统会向用户显示一个包含发票表单字段的表单以及包含发票项表单字段的行 我想要做的是有一个 添加新项目 链接 可以动态 jQuery AJAX 添加新的项目字