【发布时间】:2020-02-10 20:24:55
【问题描述】:
我已经制作了一个表格,如果用户点击一个 td,它会转换为一个包含名称和值的输入字段。
字段创建成功,但未与表单一起提交。
在我的 HTML/PHP 中:
<tr>
<form action='form_handlers/assign_query.php' method='POST'>
<td >{$row['id']}</td>
<td class='editable-td' data-name='name'>{$row['name']}</td>
<td class='editable-td' data-name='phone_no'>{$row['phone_no']}</td>
<td class='editable-td' data-name='email'>{$row['email']}</td>
<td class='editable-td' data-name='type'>{$row['type']}</td>
<td class='short-cell editable-td textarea' data-name='query'>
<div class='scrollable'>{$row['query']}</div>
</td>
<td class='editable-td' data-name='agents'>{$row['agents']}</td>
<td class='editable-td'><button type='submit' class='cstm-btn' name='update_query'><i class='fa fa-pencil'></i></button></td>
</form>
</tr>
在我的 Js 中:
$('.editable-td').dblclick(function() {
if($(this).hasClass('enabled')) {
console.log('already enabled');
} else {
$(this).addClass('enabled');
if($(this).hasClass('textarea')) {
var text_content = $(this).find('.scrollable').html();
var name = $(this).data('name');
console.log(name);
$(this).html("<textarea name='"+name+"'>"+ text_content +"</textarea>");
}
else {
var text_content = $(this).html();
var name = $(this).data('name');
console.log(name);
$(this).html("<input type='text' name='"+name+"' value='"+ text_content +"' ></input>");
}
}
});
在 form_hanlders/assign_query.php 中:
<?php
print_r($_POST);
?>
由 jQuery 动态添加的输入字段不会显示在 $_POST 数组中。但是,如果我手动输入 jQuery 生成的完全相同的行并将其粘贴到 td 中,它就会被提交。有什么帮助吗?
【问题讨论】:
-
你为什么将 html 传递给
text_content变量而不只是文本创建的textarea标签? -
我猜是可读的代码
标签: javascript php jquery html forms