使用jQuery动态添加表单元素并使用PHP提交到数据库
我对jQuery比较陌生,在使用jQuery动态添加表单元素,然后使用PHP迭代这些表单元素以添加到数据库中时遇到问题 基本上,我拥有的是一个表,单击一个使用jQuery动态添加表单元素并使用PHP提交到数据库,php,jquery,Php,Jquery,我对jQuery比较陌生,在使用jQuery动态添加表单元素,然后使用PHP迭代这些表单元素以添加到数据库中时遇到问题 基本上,我拥有的是一个表,单击一个div,就会添加一个包含表单元素的新表行。代码如下所示: $('.addRow1').click(function() { <?php $count++; ?> $('.mainTable > tbody:last').one().append('<tr><td>Chronic
div
,就会添加一个包含表单元素的新表行。代码如下所示:
$('.addRow1').click(function() {
<?php $count++; ?>
$('.mainTable > tbody:last').one().append('<tr><td>Chronic Pain Referral</td><td>Chronic referral</td><td><input type="hidden" name="count" value="<?php echo $count; ?>"><textarea name="notes"></textarea></td></tr>');
});
var cnt = $('.mainTable > tbody > tr').length + 1;
var row = '<tr><td>Chronic Pain Referral</td><td>Chronic referral</td><td><input type="hidden" name="count" value="' + cnt + '"><textarea name="notes"></textarea></td></tr>';
$('.addRow1')。单击(函数(){
$('.mainTable>tbody:last').one().append('Chronic Pain referral Chronic referral据我所知,PHP脚本在服务器端执行,代码
不会在循环中执行。它将在服务器端执行一次。您必须以另一种方式执行,在PHP脚本中的列表上迭代,并相应地附加事件
我没有PHP技能,因此无法提供代码示例
希望这会有所帮助。据我所知,PHP脚本在服务器端执行,代码
不会在循环中执行。它将在服务器端执行一次。您必须以另一种方式执行,在PHP脚本中的列表上迭代,并相应地附加事件
我没有PHP技能,因此无法提供代码示例
希望这有帮助。PHP代码在发送到浏览器之前只在服务器端执行,您需要使用javascript获取行数
试着这样做:
$('.addRow1').click(function() {
<?php $count++; ?>
$('.mainTable > tbody:last').one().append('<tr><td>Chronic Pain Referral</td><td>Chronic referral</td><td><input type="hidden" name="count" value="<?php echo $count; ?>"><textarea name="notes"></textarea></td></tr>');
});
var cnt = $('.mainTable > tbody > tr').length + 1;
var row = '<tr><td>Chronic Pain Referral</td><td>Chronic referral</td><td><input type="hidden" name="count" value="' + cnt + '"><textarea name="notes"></textarea></td></tr>';
var cnt=$('.mainTable>tbody>tr')。长度+1;
var行=‘慢性疼痛转诊慢性转诊’;
现在,如果要同时提交所有行,则需要在每行的字段名中添加[]。这会通知PHP数据是一个数组。这可能是使用foreach时出现错误的原因,而不是向其传递数组
<textarea name="notes[]"></textarea>
然后,当您使用PHP提交表单时,您不需要计数,只需执行以下操作:
<?php
if (!empty($_POST['notes'])) {
foreach ($_POST['notes'] as $note) {
...
}
}
?>
阿德里安方式的一个例子:
<textarea name="notes_"' + cnt + '"></textarea>
PHP代码在发送到浏览器之前只在服务器端执行,您需要使用javascript获取行数
试着这样做:
$('.addRow1').click(function() {
<?php $count++; ?>
$('.mainTable > tbody:last').one().append('<tr><td>Chronic Pain Referral</td><td>Chronic referral</td><td><input type="hidden" name="count" value="<?php echo $count; ?>"><textarea name="notes"></textarea></td></tr>');
});
var cnt = $('.mainTable > tbody > tr').length + 1;
var row = '<tr><td>Chronic Pain Referral</td><td>Chronic referral</td><td><input type="hidden" name="count" value="' + cnt + '"><textarea name="notes"></textarea></td></tr>';
var cnt=$('.mainTable>tbody>tr')。长度+1;
var行=‘慢性疼痛转诊慢性转诊’;
现在,如果要同时提交所有行,则需要在每行的字段名中添加[]。这会通知PHP数据是一个数组。这可能是使用foreach时出现错误的原因,而不是向其传递数组
<textarea name="notes[]"></textarea>
然后,当您使用PHP提交表单时,您不需要计数,只需执行以下操作:
<?php
if (!empty($_POST['notes'])) {
foreach ($_POST['notes'] as $note) {
...
}
}
?>
阿德里安方式的一个例子:
<textarea name="notes_"' + cnt + '"></textarea>
在页面发送到客户端之前,PHP代码
在服务器上执行;当JavaScript函数启动时,它不会执行。您需要使用JavaScript变量进行增量字段计数
此外,在表单中,只有名为“count”且值递增的字段的重复实例,以及名为“notes”的文本区域的实例。“count”字段将毫无意义,因为您无法将它们与文本区域关联(表单不保证按任何特定顺序提交表单字段)
您可能希望将计数附加到动态字段上的字段名,以便能够知道哪些字段在一行中一起。然后,您可以在表单处理程序中迭代已发布的字段,并使用字段名末尾的索引将相关字段匹配在一起。我已经做过很多次了,这有点棘手,但有点困难B绝对可行
另一种解决方案是将文本区域命名为“notes[]”,而不是“notes”。然后,在表单处理程序中,$\u REQUEST['notes']
将是所有“notes”的数组表单中的字段。如果只有一个要处理的动态字段,则此操作很好;但是,如果每个动态添加的行都有多个相互关联的字段,则无法分辨哪些字段在一行中放在一起。在这种情况下,您必须将索引附加到表单字段名。PHP代码
在服务器,在页面发送到客户端之前;当JavaScript函数启动时,它不会执行。您需要使用JavaScript变量进行增量字段计数
此外,在表单中,只有名为“count”且值递增的字段的重复实例,以及名为“notes”的文本区域的实例。“count”字段将毫无意义,因为您无法将它们与文本区域关联(表单不保证按任何特定顺序提交表单字段)
您可能希望将计数附加到动态字段上的字段名,以便能够知道哪些字段在一行中一起。然后,您可以在表单处理程序中迭代已发布的字段,并使用字段名末尾的索引将相关字段匹配在一起。我已经做过很多次了,这有点棘手,但有点困难B绝对可行
另一种解决方案是将文本区域命名为“notes[]”,而不是“notes”。然后,在表单处理程序中,$\u REQUEST['notes']
将是所有“notes”的数组表单中的字段。如果只有一个要处理的动态字段,这很好;但是,如果每个动态添加的行都有多个相互关联的字段,您将无法分辨哪些字段在一行中放在一起。在这种情况下,您必须将索引附加到表单字段名。JS/jQuery是客户端,PHP是服务器side.基本上
只在服务器上运行一次。了解HTTP
协议:jQuery如何执行HTTP
请求以及PHP如何处理它们[并相应地生成HTTP
响应].JS/jQuery是客户端,PHP是服务器端。基本上,
只在服务器上运行一次。了解HTTP
协议:jQuery如何执行HTTP
请求,以及PHP如何处理它们[和]