我为joomla.in创建了一个组件。我希望向用户显示一个表单并获取用户名,并通过ajax.i将她的名字发送到服务器。尝试使用此代码从默认情况下获取用户的数据。 php文件。
<?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>
我在“contactf”.jquery.post()中的组件名称无法调用ajax.php文件。我认为问题是
"/components/contactf/ajax.php?name="+name
。我不知道如何正确设置jQuery.post()
的参数。我需要使用JPATH_BASE
??
答案 0 :(得分:6)
尝试类似的事情,
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
是控制器内的功能。
在控制器功能中
function your_function(){
$name = JRequest::getVar('name');
//Do what ever you want
exit;
}
如果您正在使用Joomla 3. x请求参数如下。
$jinput = JFactory::getApplication()->input;
$name = $jinput->get('name');
的更多信息
希望它有意义......
答案 1 :(得分:0)
在MVC的帮助下创建一个视图,例如
AJAX / view.json.php
您组件中的
然后将发布数据发送到此视图
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格式返回结果。
扬