Я пытаюсь настроить jquery ajax в Magento. Я успешно создал пользовательскую страницу и пытаюсь настроить ajax на этой странице. Jquery работает, но ajax, похоже, ничего не делает. Странно, что у меня нет ошибок. мой config.xml выглядит следующим образом:Настройка Ajax Calls in Magento
<?xml version="1.0"?>
<config>
<modules>
<JJ_LooseDiamonds>
<version>0.1.0</version>
</JJ_LooseDiamonds>
</modules>
<frontend>
<routers>
<loosediamonds>
<use>standard</use>
<args>
<module>JJ_LooseDiamonds</module>
<frontName>loosediamonds</frontName>
</args>
</loosediamonds>
</routers>
<layout>
<updates>
<loosediamonds>
<file>loosediamonds.xml</file>
</loosediamonds>
</updates>
</layout>
</frontend>
<global>
<helpers>
<loosediamonds>
<class>JJ_LooseDiamonds_Helper</class>
</loosediamonds>
</helpers>
<blocks>
<loosediamonds>
<class>JJ_LooseDiamonds_Block</class>
</loosediamonds>
</blocks>
</global>
</config>
тогда мой макет выглядит следующим образом:
<?xml version="1.0"?>
<layout version="0.1.0">
<loosediamonds_index_index>
<reference name="root">
<action method="setTemplate"><template>page/2columns-left.phtml</template> </action>
</reference>
<reference name="left">
<block type="loosediamonds/left" name="loosediamonds_left" template="loosediamonds/left.phtml"/>
</reference>
<reference name="content">
<block type="loosediamonds/index" name="loosediamonds_index" template="loosediamonds/index.phtml"/>
<block type="loosediamonds/product" name="loosediamonds_product" template="loosediamonds/product.phtml" />
</reference>
</loosediamonds_index_index>
</layout>
мой index.phtml, которая является основной пользовательской страницы имеет реализацию Ajax:
<script type="text/javascript">
(function($) {
$(".diamondtable tr").click (function() {
var data = "id="+$(this).data("id");
try {
jQuery.ajax({
url:"<?php echo $this->getUrl('product.phtml') ?>",
dataType:'jsonp',
type:'post',
data:data,
success:function (data) {
alert (data);
}
});
} catch (e) {
alert (e);
}
})
})(jQuery)
и product.phtml имеет код, который извлекает информацию о продукте a nd должен технически передать его обратно index.phtml. Я просмотрел несколько примеров, но не решает проблему, которую я испытываю. Я блуждал, если кто-нибудь сможет помочь мне с моей дилеммой. Благодарю.
Пробовал ли вы использовать Firebug для Firefox или Chrome Inspect Element, чтобы узнать, какие данные отправляются и возвращаются с сервера? –
, когда я удаляю dataType: 'jsonp', мое предупреждение запускается с успехом. Тем не менее, я возвращаю весь код html вместо просто эха, который есть все, что у меня есть в products.phtml –
Посмотрите @ http://stackoverflow.com/questions/7448617/ajax-in-magento, это было бы много лучше поставить логику ajax в ваш контроллер, а не в файл phtml –