如何在joomla中使用jQuery.post()

时间:2014-01-28 11:54:24

标签: jquery ajax joomla

我为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 ??

2 个答案:

答案 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');

有关receiving post data

的更多信息

希望它有意义......

答案 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格式返回结果。