【问题标题】:How to create a delimited string dynamically with Jquery?如何使用 Jquery 动态创建分隔字符串?
【发布时间】:2011-09-13 10:46:50
【问题描述】:

我正在创建一个动态表单构建器,可以在其中拖放、重新排列表格行等等。这大部分都有效,但是当涉及到删除行时,我将如何创建一个数组或一组值,我可以将它们发回用于更新数据库的 php 脚本。

我要处理它的方式是创建一个分隔字符串并将其发回。

我将如何通过附加如下值来动态创建字符串:23|每次用户点击一个按钮?例如,如果用户单击按钮 3 次,则刺痛将是 23|25|26|然后当他们单击保存时,可以将该值发回以进行处理。

到目前为止,这是我用于删除函数的代码,但它只是删除表行而不实际生成字符串。

$(".reMove").live('click', function(e) {
    $(this).parent().parent().remove();


     var al = $(this).attr('rel');


    $("#form1").find(".del").val(al);


    e.preventDefault();

    sortt();

});

【问题讨论】:

标签: javascript jquery


【解决方案1】:

我会使用一个数组:

var deletions = [];

// When deleting
deletions.push(value);

// When sending to your PHP script, create a string via Array#join
var deletionsString = deletions.join("|");

或者,如果你愿意,你可以只使用一个字符串并附加到它:

var deletions = "";

// When deleting
deletions += "|" + value;

// When sending to your PHP script
if (deletions.length > 0) {
    deletions = deletions.substring(1); // Skip the leading "|"
}

...但我更喜欢数组路由。

【讨论】:

  • @Pointy:将数组发送到 PHP 时?是的,如果 OP 愿意更改格式,这是一个不错的选择。请注意,仍然有很多浏览器没有JSON.stringify,所以这是另一个要添加的脚本(除非它们真的是数字,在这种情况下手动创建 JSON 很简单)。
  • 将尝试上述解决方案并回复您。
【解决方案2】:

我可以看到你在这里有一个表格。您可以动态创建隐藏输入:

var $input = $('<input/>')
    .attr('type', 'hidden')
    .attr.('name', 'del[]')
    .val(al);
$("#form1").append($input);

提交此表单后,您可以简单地从 $_POST['del'] 数组中删除所有记录。 也许这就是您正在寻找的解决方案?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-21
    • 1970-01-01
    • 1970-01-01
    • 2019-04-04
    相关资源
    最近更新 更多