コントローラー内に 2 つのメソッドがあり、さまざまな ajax 更新用の html を取得するために呼び出します。
protected function _getDemoShippingMethodsHtml()
{
$layout = $this->getLayout();
$update = $layout->getUpdate();
$update->load('checkout_onepage_demoshippingmethod');
$layout->generateXml();
$layout->generateBlocks();
$output = $layout->getOutput();
return $output;
}
protected function _getSelectedDealerHtml()
{
$layout = $this->getLayout();
$update = $layout->getUpdate();
$update->load('checkout_onepage_selecteddealer');
$layout->generateXml();
$layout->generateBlocks();
$output = $layout->getOutput();
return $output;
}
コントローラーへの1回のリクエスト中に、これらのメソッドの1つだけを呼び出すと、期待どおりにブロックがロードされます。問題は、1 つの要求でこれらの関数の両方を呼び出そうとするところにあります。どちらのメソッドが最初に呼び出されても、予想される html が出力され、2 番目のメソッド呼び出しでは、最初のメソッドとまったく同じ html が出力されます。