0

問題の概要:

ドロップダウンが変更されると、jQuery は AJAX を起動して、選択したプロジェクトの PM を取得します。プロジェクトに既に存在する PM の数は、PHP var にあり$num_pmsます。(以下の AJAX では、これは 2 番目の隠し入力フィールド #num_pms の値として挿入されます。)

AJAX 成功コールバックでは、fninput#num_pms.val()が読み取られ、カウンターの初期化に使用されますが、数値は常に間違っています。

トラブルシューティングを行うために、 からその値を読み取りinput#num_pms、インクリメントして、 に再書き込みしようとしていinput#testます。ただし、フォームが送信された後、test の値は空になります。しかし奇妙なことに、 の値input#num_pmsは正しいです!

input#num_pmsフィールド値を読み取るために間違ったことをしているに違いありません...?


HTML: ドロップダウンが jQuery を起動して、AJAX 検索を実行します。結果は #reportstable div に入れられます。

Project*:<br />
<?php include 'inc/widgets/dropdown_all_projects.php';?>

<form action="" method="post" name="updatepm" enctype="multipart/form-data" id="TheForm">
    <div id="reportstable">
    </div>
</form>

AJAX:

$project_num = $_POST['project_num'];
$project_id = get_project_id_from_project_num($project_num);

$aPMs = get_climgr_for_project($project_id,'user_id','first_name','last_name');
$num_pms = mysql_num_rows($aPMs);


//>Snippet< -- Inject following markup into #reportstable div.
echo
'<th width="50">
    Action
    <input type="hidden" name="project_id" value="'.$project_id.'">
    <input type="hidden" name="num_pms" id="num_pms" value="'.$num_pms.'">
    <input type="hidden" name="test" id="test" value="">
</th>
';

jQuery: AJAX を起動し、結果を #reportstable に返す

$('#project_pick').change(function(e) {
    $('#project_pick').css('width', '500');
    $.ajax({
        type: "POST",
        url: "ajax/ax_all_ajax_fns.php", 
        data: "project_num=" + $(this).val(),
        success:function(data){
            $('#reportstable').html(data);

            //Tried adding this first
            var count = $('#num_pms').val() + 1;
            $('#test').val(count);

            //Tried this after above wouldn't work. It didn't either.
            //var count = 80;
        } //END success fn
    }); //END $.ajax()
}); //END dropdown .change() event
4

1 に答える 1

1

試す:

var count = parseInt($('#num_pms').val()) + 1;

また#num_pms、DOM には要素が 1 つだけあることを確認してください。

于 2013-04-24T20:37:35.313 に答える