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 に答える