0

問題

私は永遠からうまく実行されているスクリプトを持っています。それは何の問題も与えませんでした。最後に使用されたのは12月で、問題はありませんでした。誰も何も変えませんでした。しかし、今は機能しません。レビューを送信してから、ユーザーにレビューについて通知することになっています。しかし、それが保存して通知するのであれば、そのセクションには入りません。

私がしたことと結果

ユーザーを保存して通知するスクリプトの特定の部分を取り出して、テストしました。何も返さないので、入力されません。投稿データを確認しましたが、正しく表示されます。また、正しいデータを強制的に投稿しました(に変更params = $('#reviewForm').serialize();して) params = 'counter=1'

私のコード

ユーザーが入力するフォームは次のとおりです。

<form id="reviewForm">
    Employee that will be reviewed: <input type="text" id="reviewed" name="reviewed" class="items"/><br>
    <div id="openReviews" class="ui-corner-all ui-state-error" style="padding: 5 5 5 5"></div>
    Employees that will do the review:<br>
    <div id="reviewee_1">
        <ul><b>Employee 1:</b>
            <li>Name: <input type="text" id="reviewer_1" name="reviewer_1" class="items"/></li>
            <li>Position: <select id="position_1" name="position_1" class="items">
                <option value="sup">Supervisor</option>
                <option value="supp">Peers: Support</option>
                <option value="tech">Peers: Technical</option>
                <option value="sub">Sub-Ordinate</option>
            </select></li>
        </ul>
    </div>
    <input type="hidden" id="counter" name="counter" value="1" class="items"/>
    Add Another Reviewer <input type="button" id="add" value="Go >>"/><br>
    <input type="button" onClick="sendInfo()" value="Create Review"/>
</form>

[レビューの作成]をクリックすると、次のjQueryコードが呼び出されます。

function sendInfo() 
{
    if($('#reviewed').val() != "")
    {
        var params = $("#reviewForm").serialize();
        $.post('reviews.php',
        params, // as stated, even if I change this to counter = 1, it doesn't work
        function(data) {
            $('#reviewForm').hide();
            $('<p>' + data + '</p>').insertBefore('#reviewForm');
        });
    }
    else
    {
        alert("Please complete all fields in this form!");
    }
}

そして最後に、リクエストを処理するコードは次のとおりです。

if($_POST['counter'] > 0) // check if review was submitted
{
    // do stuff...
    // it doesn't even enter this...
}

質問

PHPまたはjQueryの仕様に変更があり、これが機能しなくなる可能性がありますか?足りないものはありますか?どうしたの!?

助けてください!

4

1 に答える 1

0

すべては、使用するJQueryのバージョンによって異なります。

私は交換します:

var params = $("#reviewForm").serialize();

var params = {};
$.each($("#reviewForm").serializeArray(),function(key, elem){ params[elem.name] = elem.value });

投稿には使用します

$.ajax({
    type: "POST",
    'url': 'reviews.php',
    'cache': false,
    'async': true,
    'data': params
}).done(function( data ) {
    $('#reviewForm').hide();
    $('<p>' + data + '</p>').insertBefore('#reviewForm');
}); //before ; you can use 'fail' methot to catch errors
于 2013-01-10T10:54:09.850 に答える