2014-01-28 1 views
1

Я создал компонент для joomla.in этого компонента Я хочу показать форму пользователю и получить имя пользователя и отправить свое имя на сервер с помощью ajax.i try этот код для получения данных от пользователя в файле default.php.Как использовать jQuery.post() в joomla

<?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 file.i думаю проблема в том, "/components/contactf/ajax.php?name="+name .Я не знаю, как установить аргумент для jQuery.post() правильно. Нужно ли мне использовать JPATH_BASE ??

ответ

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. х запрашивающая параметры следующим образом.

$jinput = JFactory::getApplication()->input; 
$name = $jinput->get('name'); 

Подробнее о receiving post data

Надеются, что это имеет смысл ..

+3

'JHTML :: _ ('jquery.framework');' = Joomla 3, так что вы не должны использовать 'JRequest';) – Lodder

+0

@Lodder я использовал все тоже, как это, но не работает :( –

+0

ajax alert возвратите источник html-страницы! –

0

создать представление с помощью MVC, например,

Аякса/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.

Jan

Смежные вопросы