2017-11-16 8 views
0

ここに、外部APIへのAJAX要求を作成してdivに結果を表示するjQuery onclick関数を示します。 response.vehicleの値を別のdivにポップする別の関数で使用できるようにするコールバック関数を実装するにはどうすればいいですか?コールバック関数を定義して、関数の外部で値を利用できるようにします。

$("#get-rego").click(function(e) { 
    e.preventDefault(); 

    ajaxLoader.style.display = "block"; 
    plate = document.getElementById("input_2_6").value; 

    var requestData = $.post({ 
    url: "/wp-admin/admin-ajax.php", 
    data: { 
     "action": "get_vehicle", 
     "plate": plate, 
    }, 
    "dataType": "json" 
    }); 

    requestData.done(function(obj) { 
    var response = obj.idh; 
    var vehicleMake, 
     vehicleModel, 
     vehicleYear, 
     vehicleColour, 
     vehicleSubModel, 
     vehicleBodyStyle; 

    ajaxLoader.style.display = "none"; 
    vehicleDetails.style.display = "block"; 
    vehicleMake = response.vehicle.make; 
    vehicleModel = response.vehicle.model; 
    vehicleYear = response.vehicle.year_of_manufacture; 
    vehicleColour = response.vehicle.main_colour; 
    vehicleSubModel = response.vehicle.submodel; 
    vehicleBodyStyle = response.vehicle.body_style; 

    vehicleDataSummaryOutput = "<div class=\"summary\">" + 
     "<ul>" + 
     "<li><span class=\"label\">Make:</span> " + vehicleMake + "</li>" + 
     "<li><span class=\"label\">Model:</span> " + vehicleModel + "</li>" + 
     "<li><span class=\"label\">Year:</span> " + vehicleYear + "</li>" + 
     "<li><span class=\"label\">Colour:</span> " + vehicleColour + "</li>" + 
     "<li><span class=\"label\">Submodel:</span> " + vehicleSubModel + "</li>" + 
     "<li><span class=\"label\">Body Style:</span> " + vehicleBodyStyle + "</li>" + 
     "</ul>" + 
     "</div>"; 

    vehicleDataSummary.innerHTML = vehicleDataSummaryOutput; 
    }); 

    requestData.fail(function(jqXHR, textStatus) { 
    alert("Request failed: " + textStatus); 
    }); 
}); 
+0

をコンソールでのエラーですplzは – jeevanswamy21

+0

をチェックエラーはありません。コールバック関数を定義して、#get-regoのclick関数の外にある他の関数が返す値を利用できるようにする方法を理解する必要があります。 –

+0

関数サンプル(vehicleDataSummaryOutputを使用){}は関数の外側にあり、サンプル(vehicleDataSummaryOutput)を呼び出します。それでおしまい – jeevanswamy21

答えて

0

あなたは以下のコードを使用することができます

$.ajax({ 
    url: '/wp-admin/admin-ajax.php', 
    dataType: 'json', 
    success: function (response) { 
     // Parse responseText 
     var obj = JSON.parse(response.responseText); 

     // Pass object to function 
     doSomeThing(obj.vehicle);  
    } 
}); 

function doSomeThing(vehicle) 
{ 
// Do some work ... 
} 
関連する問題