0

シリアル化されたデータと変数を php に渡していますが、データ セクションで予期しないトークン '(' エラーが発生します

データ セクションから 'lid':userID を取り出すと、正常に動作します。

$("#cname").submit(function (e) {
    e.preventDefault();
    $.ajax({
        url: 'someurl',
        crossDomain: true,
        type: 'post',
        data: {$("#cname").serialize(), 'lid':userID},
        success: function (data) {
            $("#result").html(data);
            $.mobile.changePage($('#page-tasklist'));
        },
    });
});
4

2 に答える 2

2

.serialize()メソッドの出力は のような文字列ですaction=login&UserName=&Password=&Site=Test。代わりにこれを試してください。

$("#cname").submit(function (e) {
    e.preventDefault();
    $.ajax({
        url: 'someurl',
        crossDomain: true,
        type: 'post',
        data: $("#cname").serialize() + '&lid=' + userID,
        success: function (data) {
            $("#result").html(data);
            $.mobile.changePage($('#page-tasklist'));
        },
    });
});

lid: userIDまた、 ajax リクエストから単に削除すると、有効な json ではないため、実際にはエラーが発生しますパラメータは、返されるもののようなエンコードされた文字列または json オブジェクトの{$("#cname").serialize()}いずれかを受け入れることができます。data.serialize()

次の 2 つの例は同等です。

$.ajax({url:'index.php',type:'POST',data:{z:1,y:2}});
$.ajax({url:'index.php',type:'POST',data:'x=1&y=2'});
于 2013-06-10T22:50:41.103 に答える
0

変数に追加してから、新しいキー/値をプッシュしてみてください。

$("#cname").submit(function (e) {
    var serializeData = $("#cname").serializeArray();
    serializeData.push({'lid':userID})
    e.preventDefault();
    $.ajax({
        url: 'someurl',
        crossDomain: true,
        type: 'post',
        data: serializeData,
        success: function (data) {
            $("#result").html(data);
            $.mobile.changePage($('#page-tasklist'));
        }
    });
});
于 2013-06-10T22:51:47.940 に答える