【问题标题】:Problem processing an array of textareas when they are loaded dynamically with jQuery and PHP使用 jQuery 和 PHP 动态加载文本区域数组时出现问题
【发布时间】: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 提取链接?
  • 奇怪的问题,但您的表单标签是否已关闭?

标签: php jquery


【解决方案1】:

我怀疑这与您的 html 的正确性有关。

阅读您的问题以及您使用常规提交的事实,例如,问题可能是缺少“表单”结束标记。

当 html 没有正确嵌套时,浏览器有时会出现奇怪的 Javascript 行为。

【讨论】:

    【解决方案2】:

    你应该看看jquery的.live()函数。

    http://api.jquery.com/live/

    【讨论】:

    • 我看不出这有什么关系……你有机会填空吗? :)
    • Same... jQuery 点击不会失败。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-03
    • 2011-11-25
    • 2011-01-25
    • 2015-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多