如何在joomla中使用jQuery.post()
我为joomla创建了一个组件。在这个组件中,我想向用户显示一个表单,获取用户的姓名,并通过ajax将她的姓名发送到服务器。我尝试在default.php文件中从用户获取数据如何在joomla中使用jQuery.post(),jquery,ajax,joomla,Jquery,Ajax,Joomla,我为joomla创建了一个组件。在这个组件中,我想向用户显示一个表单,获取用户的姓名,并通过ajax将她的姓名发送到服务器。我尝试在default.php文件中从用户获取数据 <?php defined('_JEXEC') or die('Restricted access');?> <div id="results"></div> <input type="text" name="name" id="name" value=""> <
<?php
defined('_JEXEC') or die('Restricted access');?>
<div id="results"></div>
<input type="text" name="name" id="name" value="">
<input type="button" class="button" id="savename" value="Save Name">
<?php
$document = JFactory::getDocument();
JHtml::_('jquery.framework');
?>
<script>
jQuery(document).ready(function(){
jQuery("#savename").click(function(){
var name = jQuery('#name').val();
jQuery.post("/components/contactf/ajax.php?name="+name , function(response){
jQuery('#results').html(jQuery(response).fadeIn('slow'));
});
});
});
</script>
jQuery(文档).ready(函数(){
jQuery(“#savename”)。单击(函数(){
var name=jQuery('#name').val();
jQuery.post(“/components/contactf/ajax.php?name=“+名称,函数(响应){
jQuery('#results').html(jQuery(response.fadeIn('slow'));
});
});
});
我在“contactf.jquery.post()中的组件名不能调用ajax.php文件。我想问题是
“/components/contactf/ajax.php?name=“+name
。我不知道如何正确设置jQuery.post()
的参数。我是否需要使用JPATH\u BASE
?尝试以下操作:
jQuery("#savename").click(function(){
var name= jQuery("#name").val();
var data = 'name='+name;
jQuery.ajax({
type: "POST",
url: "index.php?option=com_yourcomponent&task=yourcontroller.your_function",
data: data,
success: function(data){
alert(data);
}
});
});
这里的yourcontroller
是相关的控制器文件,your_函数
是控制器内部的函数
在控制器功能内部
function your_function(){
$name = JRequest::getVar('name');
//Do what ever you want
exit;
}
如果您使用的是Joomla 3。x请求如下参数
$jinput = JFactory::getApplication()->input;
$name = $jinput->get('name');
更多关于
希望它有意义。试试这样的东西
jQuery("#savename").click(function(){
var name= jQuery("#name").val();
var data = 'name='+name;
jQuery.ajax({
type: "POST",
url: "index.php?option=com_yourcomponent&task=yourcontroller.your_function",
data: data,
success: function(data){
alert(data);
}
});
});
这里的yourcontroller
是相关的控制器文件,your_函数
是控制器内部的函数
在控制器功能内部
function your_function(){
$name = JRequest::getVar('name');
//Do what ever you want
exit;
}
如果您使用的是Joomla 3。x请求如下参数
$jinput = JFactory::getApplication()->input;
$name = $jinput->get('name');
更多关于
希望它有意义。在MVC的帮助下创建一个视图,例如 ajax/view.json.php 在您的组件中 然后将post数据发送到此视图
jQuery.post( "index.php?option=com_contactf&view=ajax?name="+name+"&tmpl=component" , function(response){
jQuery('#results').html(jQuery(response).fadeIn('slow'));
然后在view.json.php中运行所有php代码并以json格式返回结果
Jan在MVC的帮助下创建视图,例如 ajax/view.json.php 在您的组件中 然后将post数据发送到此视图
jQuery.post( "index.php?option=com_contactf&view=ajax?name="+name+"&tmpl=component" , function(response){
jQuery('#results').html(jQuery(response).fadeIn('slow'));
然后在view.json.php中运行所有php代码并以json格式返回结果
Jan
JHtml::(('jquery.framework')
=Joomla 3,所以不应该使用JRequest
;)ajax警报返回html页面的源代码!确保在控制器功能中添加了退出@我在评论上犯了一个错误。您仍然应该使用JHtml::(('jquery.framework')代码>导入jQuery。Jobin Jose在他的答案中提供了Joomla 3.x替代方案,而不是JRequest
。在Joomla3和3.x中是否有调用ajax的简单示例?!我真的搞糊涂了…:(JHtml::(('jquery.framework');
=Joomla 3所以你不应该使用JRequest
;)ajax警报返回html页面的源代码!确保在控制器功能中添加了退出@我在评论上犯了一个错误。您仍然应该使用JHtml::(('jquery.framework')代码>导入jQuery。Jobin Jose在他的答案中提供了Joomla 3.x替代方案,而不是JRequest
。在Joomla3和3.x中是否有调用ajax的简单示例?!我真的搞糊涂了…:(