1

这就是我所拥有的(经过多次修改)

<script type="text/javascript">
$(document).ready(function () {
    $("select.status").change(function () {
        var myid = $(this).attr("id");
        var mystatus = $("#" + myid).val();
        var dataString = 'id=' + myid,
            'status=' + mystatus;
        $.ajax({
            type: "POST",
            cache: false,
            url: "inc/editfields.php",
            data: dataString,
            dataType: "html",
            success: function () {
                $('#statusmsg').html(data).hide().fadeIn(1500, function () {
                    $('#statusmsg');
                });
            },
            error: function (xhr, err, e) {
                alert("Error: " + err);
            }
        });
        return false;
    });
});
</script>

以及在抓取时从数据库中获取唯一 ID 的 select 语句。

<select class="status" id="status<? echo $id;?>">
<option value="Vrij"<? if ($regiodata["status"]=='Vrij') echo " selected";?>>Vrij</option>
<option value="Bezet"<? if ($regiodata["status"]=='Bezet') echo " selected";?>>Bezet</option>
<option value="Optie"<? if ($regiodata["status"]=='Optie') echo " selected";?>>Optie</option>
</select><div id="statusmsg"></div>

但是,经过数小时的尝试各种事情后,它不起作用。任何人都可以帮助我这里可能是错的吗?在我拔掉我的头发之前-:)

4

1 回答 1

2
    var dataString = 'id=' + myid,
        'status=' + mystatus;

应该:

var dataString = 'id=' + encodeURIComponent(myid) +
                 '&status=' + encodeURIComponent(mystatus);

但最好这样做:

var dataString = { id: myId,
                   status: mystatus
                 };

当您使用对象作为data:参数时jQuery.ajax(),它会自动对参数进行编码。

与问题无关,但是:

$("#" + myid).val()

可以简化为:

$(this).val()

或者

this.value
于 2013-08-16T20:18:42.823 回答