2

我有一个使用 JQuery AJAX 发送数据的管理页面的问题,但它不处理 & 或 ",原因很明显(它们破坏了数据字符串/url)。

使用允许这些字符的 Javascript 发送这些数据的正确方法是什么?使用数据数组可以解决 & 但它会解决“?

必须接受的示例输入:执行此操作并按“输入”

function SaveCombinations() {
    var priority = 0;
    $("#sort li").each(function() {
        $.ajax({"url": "lib/sc-save.php", "data": "id="+this.id+"&name="+$(this).find("input").val()+"&priority="+priority, "type": "POST",
        "success": function() {}});
        priority++;
    });
}
4

1 回答 1

3

将您的数据作为对象传递,它将为您处理:

function SaveCombinations() {
    var p = 0;

    $('#sort li').each(function(){
        var $id = this.id,
            $name = $(this).find('input').val(),
            $priority = p, // you don't really need to do this, its just a maintainability thing in case it changes in the future
            $data = {id:$id,name:$name,priority:$priority};

        $.ajax({
            type:'POST',
            url:'lib/sc-save.php',
            data:$data  
        }).done(function(){
            p++;
        });
    });
}

这些方面的东西应该既能解决你的问题,又能更容易阅读/维护。

编辑

正如有人指出的那样,该.each()函数已经为您处理了索引。

function SaveCombinations() {
    $('#sort li').each(function(i){
        var $id = this.id,
            $name = $(this).find('input').val(),
            $priority = i,
            $data = {id:$id,name:$name,priority:$priority};

        $.ajax({
            type:'POST',
            url:'lib/sc-save.php',
            data:$data                
        });
    });
}

这也适用于实施。

于 2013-10-23T17:36:00.060 回答