【发布时间】:2023-03-20 00:46:01
【问题描述】:
我在尝试在表单上执行多文本区域时遇到问题。
我有一个 PHP 视图,它有各种形式,所有处理方式都不同,但在同一个文件中。它们都有效,我已经测试过并且它们有效。在表单中有一个 + 图标,可让用户添加更多 <textarea /> 实例。这个 + 图标通过 AJAX 加载一个与前一个文本区域同名的新文本区域(例如,name="example[]")。如果我发布这个,它只会得到第一个项目,它是以前没有被 jQuery 加载的项目。问题是动态加载的完全被忽略了,我不知道为什么。
我的 PHP 视图摘录:
<?php echo form_open("projects/view/".$projectid); ?> <!-- This generates a valid <form /> tag -->
<table>
<tr>
<th><?php echo lang("label_conx");?></th>
<td class="textarea-edit">
<textarea class="context" name="CONX[]"><?php echo set_value("CONX[]");?></textarea>
</td>
<td class="add"><a id="add-conx" href="#"><?php echo img("img/icons/plus.png");?></a></td>
</tr>
...
我的 jQuery 代码工作正常,因为内容已显示,并且我在 firebug 中看到与 html 加载的 textarea 相同:
$("a#add-conx").click(function(){
$("#ajax-loader").fadeIn('normal');
$("textarea.context:last").after('<textarea class="context" name="CONX[]"></textarea>');
$("#ajax-loader").fadeOut("normal");
return false;
});
当我发送表单时,我的 PHP 控制器中有一个 print_r($_POST);,但我只得到:
Array
(
[CONX] => Array
(
[0] => safdsddasfafsd
)
...
如果我在 PHP 视图中放置各种文本区域,该数组的增加与我在 HTML 视图文件中创建的文本区域的数量相同。我不明白为什么这不起作用。
页面加载时:
动态添加一些内容后:
这两张图片显示了 4 个名为 context[] 的 textarea 实例 (已更改为 CONX[],但不等于)在视图中。第二张图片显示了使用 jQuery 加载的图片,PHP 仅检测到 HTML 中的前 4 个。
有人知道我该如何解决这个问题吗?
提前谢谢你!
【问题讨论】:
-
提交方法是什么?常规提交还是 ajax 提交?
-
@Jerome:它是一个常规提交,但在同一页面中有 5 个提交按钮(具有不同的名称)。
-
你能不能简单解释一下
-
我没听错...您是否有机会发布表单的完整 HTML 提取链接?
-
奇怪的问题,但您的表单标签是否已关闭?