2015-01-28 2 views
0

Я разрабатываю настраиваемый компонент для Joomla 3.0, и я использую поле редактора в одном из своих представлений. Я разрабатываю свои взгляды из чистого HTML и JS, не из XML-структуры Joomla. Мне удалось загрузить и использовать поле редактора, но когда я отправляю данные формы на свой контроллер с помощью ajax, поле редактора не отображается или равно null.Как отправить POST содержимое, указанное в редакторе Joomla - Пользовательский компонент

Как я могу разместить содержимое редактора в своем контроллере с помощью ajax?

Форма Код -

<form id="servicecategory-form" name="servicecategory-form" enctype="multipart/form-data"> 
... 
<!-- description editor--> 
<div class="control-group"> 
    <label class="control-label"> 
     <a href="#" data-toggle="tooltip" title="Description"> 
      Description 
     </a> 
    </label> 
    <div class="controls"> 
     <?php 
     $editor = JFactory::getEditor(); 
     echo $editor->display('description', '', '270', '300', '50', '10',false); 
     ?> 
     <p class="help-block"></p> 
    </div> 
</div> 
... 
</form> 

Javascript код -

function saveServiceCategory() { 
    var form = jsn('#servicecategory-form'); 

     var formData = form.serialize(); 

     jsn.ajax({ 
      type: 'POST', 
      url: 'index.php?option=com_centrilliontech_helloworld&task=custom.saveData&tmpl=component&format=raw', 
      cache: false, 
      data: formData, 
      beforeSend: function() { 
       jsn('#loading-modal').modal('show'); 
       console.log('beforeSend'); 
      } 
     }) 
      .success(function(response) { 
       var value = jQuery.parseJSON(response); 

       if (value.error) { 
        alertBar('alert-error', 'Service Category', 'Error'); 
       } else { 
        alertBar('alert-info', 'Service Category', value.message); 
       } 
      }) 
      .complete(function() { 
       jsn('#loading-modal').modal('hide'); 
       console.log('complete'); 
      }) 
      .error(function() { 
       alertBar('alert-danger', 'Service Category', 'Oops! An error occurred. Please try again later.'); 
      }); 
} 

Пожалуйста, предположим, что запрос Ajax и что-нибудь сделать с проводкой данных в соответствующем контроллер работают нормально, что это , единственная проблема заключается в том, как я могу получить доступ к содержимому редактора и отправить его на контроллер, чтобы сохранить его в базе данных.

Спасибо за вашу помощь заранее.

ответ

0

Вот как я прохожу значение редактор Joomla через AJAX:

Либо сохранить содержимое редактора в скрытом входе или на элементе действия в качестве атрибута данных на PHP/HTML стороне:

<input type="hidden" id="element_id" value="<?php echo $editor->save('editor_id'); ?>" /> 

или в качестве атрибута данных по кнопке:

<a id="element_id" href="javascript:;" data="<?php echo $editor->save('editor_id'); ?>">Submit</a> 

Тогда на стороне Javascript просто называют это значение входного атрибута или данные, как это:

Помните, что если вы передаете html вашему контроллеру и получаете значения с помощью jinput, вам необходимо использовать raw, иначе он удалит из него разметку html.

$message = $jinput->get('message', null, 'raw'); 
Смежные вопросы