0

以下に、関数を実行して呼び出されるこのコードがありgetGradesます。

function getGrades(grading_company) {
    // Set file to get results from..
    var loadUrl = "ajax_files/get_grades.php";

    // Set data string
    var dataString = 'gc_id=' + grading_company;

    // Set the callback function to run on success
    var callback = showGradesBox;

    // Run the AJAX request
    runAjax(loadUrl, dataString, callback);
}

function showGradesBox(response) {
    // Load data into grade field

    // Hide condition fields
    jQuery('#condition').hide();
    jQuery('#condition_text').hide();

    // Show grade fields
    jQuery('#grade_wrapper').show();
    jQuery('#grade_text_wrapper').show();    
}

function runAjax(loadUrl, dataString, callback) {
     jQuery.ajax({
        type: 'GET',
        url: loadUrl,
        data: dataString,
        dataType: 'html',
        error: ajaxError,
        success: function(response) {
            callback(response);
        }
    });    
}

ご覧のとおり、AJAX応答データをshowGradesBox関数に渡しています。ただし、フィールドにロードする方法がわかりません。

使用例を見て.load()きましたが、URLで一度に使用する必要があるようです。私が遭遇した可能性のある他の唯一の関数は.html();です。しかし、その説明は正しく聞こえません!?

4

3 に答える 3

1

.html()動作するはずです...

.html()を使用して要素のコンテンツを設定すると、その要素に含まれていたコンテンツはすべて新しいコンテンツに完全に置き換えられます。さらに、jQueryは、データやイベントハンドラーなどの他の構成要素を子要素から削除してから、それらの要素を新しいコンテンツに置き換えます。

function showGradesBox(response) {

  // Load data into grade field
  jQuery('#yourgradefieldID').html(response);

  // Hide condition fields
 jQuery('#condition').hide();
 jQuery('#condition_text').hide();


 // Show grade fields
 jQuery('#grade_wrapper').show();
 jQuery('#grade_text_wrapper').show();    

}
于 2013-01-07T10:48:50.407 に答える
0

IDがgrade_textで、PHPからの文字列が返されるフィールドを想定します。

function showGradesBox(response) {

  // Load data into grade field

  jQuery('#grade_text').val(response);

  // Hide condition fields
  jQuery('#condition').hide();
  jQuery('#condition_text').hide();


  // Show grade fields
  jQuery('#grade_wrapper').show();
  jQuery('#grade_text_wrapper').show();    

}
于 2013-01-07T10:40:32.877 に答える
0

これにより、コールバックに「undefined」の値が割り当てられます。

// Set the callback function to run on success
var callback = showGradesBox;

このような関数の前に、showGradesBoxという名前の変数に関数を割り当ててみてください

var showGradesBox = function(response) {
    // Load data into grade field

    // Hide condition fields
    jQuery('#condition').hide();
    jQuery('#condition_text').hide();

    // Show grade fields
    jQuery('#grade_wrapper').show();
    jQuery('#grade_text_wrapper').show();    
}

function getGrades(grading_company) {
    // Set file to get results from..
    var loadUrl = "ajax_files/get_grades.php";

    // Set data string
    var dataString = 'gc_id=' + grading_company;

    // Set the callback function to run on success
    var callback = showGradesBox;

    // Run the AJAX request
    runAjax(loadUrl, dataString, callback);
}

function runAjax(loadUrl, dataString, callback) {
     jQuery.ajax({
        type: 'GET',
        url: loadUrl,
        data: dataString,
        dataType: 'html',
        error: ajaxError,
        success: function(response) {
            callback(response);
        }
    });    
}
于 2013-01-07T10:43:51.437 に答える