Tôi đang cố gắng sử dụng cuộc gọi ajax với Magento. Khi tôi gọi một trang khối thông qua Ajax, tôi nhận được tất cả các HTML bao gồm cả đầu, css, javascript, và cơ thể. Làm thế nào để tôi chỉ có được một phần cơ thể?Magento Ajax - Làm thế nào để có được chỉ một phần cơ thể?
Trả lời
Nếu bạn có thể cung cấp thêm một chút thông tin về "trang chặn" nào bạn đang gọi, có thể dễ dàng phân biệt vấn đề hơn. Theo mặc định, Magento bao gồm thẻ bố trí <default>
cho tất cả các trang, thẻ này sẽ cung cấp cho bạn tiêu đề trang và chân trang ngay cả trên các cuộc gọi AJAX.
Để gửi một trang mà không cần thêm tất cả, bạn có một vài tùy chọn. Thứ nhất, bạn có thể đơn giản thiết lập đầu ra bằng tay của riêng bạn, tránh hoàn toàn hệ thống bố trí. Magento thực hiện điều này cho một trang kiểm tra tính năng:
$result = array('foo' => 'foo', 'bar' => 'bar',);
$this->getResponse()->setBody(Zend_Json::encode($result));
Bạn cũng có thể thay đổi phương pháp này sử dụng một bộ xử lý bố trí tùy chỉnh như thế này:
protected function loadPage() {
$layout = $this->getLayout();
$update = $layout->getUpdate();
$update->load('your_custom_handle');
$layout->generateXml();
$layout->generateBlocks();
$output = $layout->getOutput();
$result = array('outputHtml' => $output, 'otherVar' => 'foo',);
$this->getResponse()->setBody(Zend_Json::encode($result));
}
Và trong file layout của bạn:
<your_custom_handle>
<remove name="right"/>
<remove name="left"/>
<block type="module/block" name="root" output="toHtml" template="module/template.phtml"/>
</your_custom_handle>
Tùy chọn thứ hai, nếu bạn muốn sử dụng bố cục, là xác định bố cục mặc định thay thế. Khi bạn gọi $this->loadLayout();
trong bộ điều khiển Magento, bạn thực sự có thể chỉ định một tay cầm khác với số <default>
để hạ xuống. Một ví dụ từ bộ điều khiển sản phẩm Magento sẽ là:
$this->loadLayout('popup');
Bố cục này được xác định bởi mặc định trong file main.xml
bố trí, và ám chỉ rằng popup.phtml
mẫu, và có thể phù hợp để sử dụng.
Nếu bạn vẫn gặp sự cố, hãy cho tôi biết và chúng tôi có thể thử những thứ khác. Hy vọng rằng sẽ giúp.
Xin cảm ơn, Joe
- 1. làm thế nào để có được bảng Magento tên
- 2. Trong Magento làm thế nào để bạn có được tên cơ sở dữ liệu?
- 3. Sử dụng các cuộc gọi AJAX cơ bản trong Magento
- 4. Làm thế nào để thiết lập cơ thể thô trong jQuery Ajax?
- 5. Magento - Làm thế nào để lập trình một phụ huynh mới cho một thể loại?
- 6. Làm thế nào để có được xung quanh một lỗi 'NS_ERROR_ILLEGAL_VALUE' bằng cách sử dụng Ajax?
- 7. Làm thế nào để tải một tập tin xem magento (.phtml) từ một bộ điều khiển
- 8. Làm thế nào để có được một mảng trong Django đăng qua Ajax
- 9. Làm thế nào để có được chỉ phần tử con trực tiếp bằng chức năng jQuery
- 10. Làm thế nào để có được chỉ số của phần tử trong Set đối tượng
- 11. Làm thế nào để gọi một lớp trợ giúp Magento
- 12. Các websockets trong HTML 5 có thay thế ajax để làm mới một phần trang không?
- 13. Làm thế nào để có được chỉ số phần tử lớn nhất trong mảng matlab
- 14. Làm thế nào để có được địa chỉ MAC phần cứng trên Windows
- 15. Làm cách nào để tôi có thể nhập lệnh vào Magento một cách có lập trình?
- 16. Làm thế nào tôi có thể thêm một tab mới trong trang sản phẩm trong Magento
- 17. Làm thế nào tôi có thể nhận được một phần chỉ href của kết quả văn bản Html.ActionLink
- 18. Làm thế nào để nhận được html của một div từ một trang khác với AJAX?
- 19. Làm thế nào để có được tên miền của một chức năng một phần trong Scala?
- 20. Làm thế nào để có được một datepicker cho Html.Editorfor
- 21. Làm thế nào tôi có thể kiểm tra xem một đôi có một phần phân đoạn?
- 22. MVC: làm thế nào để ajax?
- 23. Làm thế nào để biết liệu một động cơ TTS cụ thể có được kiểm tra (bật) không?
- 24. Làm thế nào tôi có thể tìm ra Javascript nào gây ra một yêu cầu Ajax?
- 25. Làm thế nào để thêm một mẫu để cơ thể trong Meteor bên trong một gói
- 26. Delphi: Indy - làm thế nào để có được cơ thể phản ứng về lỗi?
- 27. bitmask: làm thế nào để xác định nếu chỉ có một bit được thiết lập
- 28. Làm thế nào để có được một thành phần của một phối hợp tikz/PGF?
- 29. Làm thế nào để có được đầy đủ url hình ảnh sản phẩm trong Magento
- 30. Làm thế nào để có được useragent trong Magento điều khiển?
Cảm ơn bạn vì điều này. Đã cứu tôi một đống thời gian. – Travis
Lưu ý rằng nếu bạn sao chép và dán ví dụ về tệp bố cục, hãy đảm bảo thay đổi 'type =" module/block "' thành kiểu khối magento thực, như 'type =" page/html "' hoặc một loại khối tùy chỉnh được xác định cho bạn module. – zlovelady
rực rỡ, đơn giản, eficient ... Tôi thích nó. Cảm ơn Joe – OSdave