Ajax调用模块不返回任何内容

时间:2014-06-16 16:23:03

标签: php jquery ajax magento wkhtmltopdf

我的目标是能够使用magento从html页面生成pdf。然而,我被困在成功做一个ajax请求。

我得到了ajax调用工作但是它没有返回我在Specsheetpdf.phtml文件中的内容。

我可能做错了,我对此很新。

在主题文件夹中的view.phtml文件中,我有这个代码,当单击一个按钮调用生成pdf的specsheetpdf.phtml文件时,它使用ajax:

jQuery(document).ready(function() {
    jQuery( "input#printPDF_RDT" ).click(function() {
        //get all value
        var prod_name = jQuery("#product_name_RDT").text();
        var prod_details = jQuery(".box-description .std").html();
        var prod_image = jQuery(".product-image #image").attr('src');

        //Before we get the options html we need to wrap it around a div to make things easy
        jQuery("#product-options-wrapper").wrap("<div id='product_options_RDT'></div>");
        //Now get the html in the created div
        var prod_options = jQuery("#product_options_RDT").html();
        var prod_sku = jQuery("#showsku").text();

        // Do AJAX call to makePDF.php

        jQuery.ajax({
            type: "POST",
            url: "<?php echo $this->getUrl('specsheetpdf/ajax/index') ?>",
            data: { product_name: prod_name , product_details: prod_details,
                    product_image: prod_image, options_html : prod_options, 
                    product_sku : prod_sku },
            success: function(data) {
                    jQuery('#results_rdt').html(data);
            }
        });

    });
});

作为测试,specsheetpdf.phtml应该回显产品名称,但是现在我得到一个空白的模板。如果这是有道理的。它返回网页的html,主体中没有内容。

以下是我所制作模块的代码:

应用/代码/本地/ Rdtmodules / Specsheetpdf /控制器/ AjaxController.php

class Rdtmodules_Specsheetpdf_AjaxController extends Mage_Core_Controller_Front_Action {

    public function indexAction() {
        $this->loadLayout();
        $this->renderLayout();
    }
}

应用/代码/本地/ Rdtmodules / Specsheetpdf的/ etc / config.xml中

<?xml version="1.0"?>
<config>
  <modules>
    <Rdtmodules_Specsheetpdf>
      <version>0.1.0</version>
    </Rdtmodules_Specsheetpdf>
  </modules>
  <frontend>
    <routers>
      <Specsheetpdf>
        <use>standard</use>
        <args>
          <module>Rdtmodules_Specsheetpdf</module>
          <frontName>specsheetpdf</frontName>
        </args>
      </Specsheetpdf>
    </routers>
    <layout>
      <updates>
        <specsheetpdf>
          <file>specsheetpdf.xml</file>
        </specsheetpdf>
      </updates>
    </layout>
  </frontend>
</config>

应用的/ etc /模块/ Rdtmodules_Specsheetpdf.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Rdtmodules_Specsheetpdf>
             <active>true</active>
             <codePool>local</codePool>
        </Rdtmodules_Specsheetpdf>
    </modules>
</config>

前端/默认/默认/布局/ specsheetpdf.xml

<?xml version="1.0"?>
<layout version="1.0">
  <specsheetpdf_ajax_index>
    <block type="specsheetpdf/specsheetpdf" name="root" output="toHtml" template="specsheetpdf/specsheetpdf.phtml" />
  </specsheetpdf_ajax_index>
</layout>

前端/默认/默认/模板/ specsheetpdf / specsheetpdf.phtml

$product_name = $_POST['product_name'];
$product_details = $_POST['product_details'];
$product_image = $_POST['product_image'];
$options_html = $_POST['options_html'];
$product_sku = $_POST['product_sku'];
echo $product_name;

我做错了吗?非常感谢帮助。

1 个答案:

答案 0 :(得分:0)

它有效:当我把信息放在这里时,我发现自己纠正了:l。 Welp希望这也有助于其他人:)