我多年来一直试图让Json在Joomla工作而我无法做到。我想我已经尝试过URL的所有组合,所以任何帮助都会很棒:
这是针对管理员端结构的样子 管理员
-controllers
- orderitem.php
-views
- OrderItem的
--- TMPL
---- orderitem.php
-controller.php
function updateNow(newrefresh){
var dataJSON = JSON.encode (newrefresh);
var request = new Request.JSON({
method: 'post',
url: 'index.php?option=com_customersitedetails&view=orderitem&task=refreshscreen&format=raw',
data: {
json: dataJSON
},
onComplete: function(jsonObj) {
alert("Your form has been successfully submitted ");
}
}).send();
};
虽然运行警告框,但它不会重新调用JSON
查找未找到[名称,类型,前缀]:orderitem,raw,customersitedetailsView
我可以开始的任何想法?感谢
答案 0 :(得分:0)
您遗漏了包含views/orderitem/view.raw.php
课程的CustomersitedetailsViewOrderitem
。
<强>视图/ OrderItem的/ view.raw.php 强>
class CustomersitedetailsViewOrderitem extends JViewLegacy
{
public function display($tpl = null)
{
$response = 'Your magic response here';
echo $response;
JFactory::getApplication()->close();
}
}
答案 1 :(得分:-1)
你可以在这里查看joomla中正确的ajax调用 How to Write PHP in AJAX
在你的控制器内你应该有一个文件&#34; mycall.json.php&#34;此文件将处理并返回ajax调用的json格式
Joomla并没有将AJAX内置作为其系统的一部分。我的答案来自lynda.com的Josef Leblanc课程 http://www.lynda.com/Joomla-1-6-tutorials/Joomla-1-7-Programming-and-Packaging-Extensions/73654-2.html
正如我所说: 写这个我的前端JS:
$.ajax({
type: 'GET',
url: 'index.php',
data: {option: 'com_componenetname', task: 'taskname.youroperation', format: 'json', tmpl: 'raw'},
dataType: 'json',
async: true, // can be false also
error: function(xhr, status, error) {
console.log("AJAX ERROR in taskToggleSuceess: ")
var err = eval("(" + xhr.responseText + ")");
console.log(err.Message);
},
success: function(response){
// on success do something
// use response.valuname for server's data
}
,
complete: function() {
// stop waiting if necessary
}
});
在后端你应该有一个com_componentname / controllers / taskname.json.php下的文件
文件应如下所示
class ComponentnameControllerTaskname extends JControllerLegacy (Legacy only J3.0)
{
public function __construct($config = array())
{
parent::__construct($config);
$this->registerTask('operationname', 'functionname');
}
public function functionname() {
// do something in backend
echo json_encode(array(''var1' => val1, 'var2' => val2 ) );
}
}
nibra - 我在我所有的joomla网站中使用它并且它的工作完美。你的评论错了,pease给我回信