Здравствуйте!
Ребята подскажите каким образом отправить данные формы ввода нового комментария через ajax с учетом HostCms 6?
Нужны ли при этом ajax.js и JsHttpRequest.js в первом из них например есть функция АjaxSendForm(callback_function, AAdditionalParams, ButtonObject)
Сделал простую проверку работы Ajax для понимания работы
в main.js прописал свои функции
(function(jQuery){
// Функции без создания коллекции
jQuery.extend({
addAjaxComment: function(path,item_id){
$.clientRequest({path: path + '?add_ajax_comment=' + item_id, 'callBack': $.addAjaxCommentCallback, context: $('#comment_message')});
return false;
},
addAjaxCommentCallback: function(data, status, jqXHR)
{
$.loadingScreen('hide');
jQuery(this).html(data);
}
});
})(jQuery);
В коде настоек типовой ИС написал код, где читаю и возврашаю для примера переданный id элемента ИС, для которой предполагается ajax добавление комментария.
if (Core_Array::getGet('add_ajax_comment'))
{
$item_id = intval(Core_Array::getGet('add_ajax_comment'));
// Ajax
if (Core_Array::getRequest('_', FALSE))
{
ob_start();
echo "id element=";
echo $item_id;
echo json_encode(ob_get_clean());
exit();
}
}
Все это в XLST элемента ИС вызываю с помощью
<a href="#" onclick="return $.addAjaxComment('{/informationsystem/informationsystem_item/url}', {@id})">TEST AJAX ADD COMMENT </a>
А вот как передать форму с данными о новом комментарии через ajax не понимаю
Код формы добавления комментаия в XSLT элемента ИС:
<div id="comment_message"></div>
<form class="form" action="{/informationsystem/informationsystem_item/url}" name="comment_form_0{$id}" method="post">
<!-- Поле ИМЯ -->
<fieldset class="name-container">
<xsl:if test="/informationsystem/siteuser_id = 0">
<label><span class="text-red">*</span> Имя:</label>
<input placeholder="Имя" id="comment-name" name="author" type="text" value="{$name}"/>
</xsl:if>
</fieldset>
<!-- Поле EMAIL-->
<fieldset class="email-container">
<xsl:if test="/informationsystem/siteuser_id = 0">
<label><span class="text-red">*</span> Email:</label>
<input type="email" id="email{$id}" placeholder="Email" name="email" value="{$email}" />
</xsl:if>
</fieldset>
<div id="error_email{$id}"></div>
<fieldset class="message">
<label><span class="text-red">*</span> Комментарий:</label>
<textarea id="comment-message" name="text" rows="8" placeholder="Текст комментария"><xsl:value-of select="$text"/></textarea>
</fieldset>
<!-- Обработка CAPTCHA -->
<xsl:if test="//captcha_id != 0 and /informationsystem/siteuser_id = 0">
<!-- <form class="well form-inline"> -->
<fieldset class="captcha-container">
<label><span class="text-red">*</span> Контрольное число:</label>
<input type="hidden" class="input-small" name="captcha_id" value="{//captcha_id}{$id}"/>
<input id="comment-captcha" name="captcha" type="text"/>  </fieldset>
<fieldset class="captcha-container">
<label><span class="text-red"> </span> </label>
<img id="comment_{$id}" class="captcha" src="/captcha.php?id={//captcha_id}{$id}&height=34&width=100" title="Контрольное число" name="captcha"/>  <span onclick="jQuery('#comment_{$id}').updateCaptcha('{//captcha_id}{$id}', 34); return false"><i class="icon-retweet"></i></span>
</fieldset>
<!-- </form> -->
</xsl:if>
<xsl:if test="$id != 0">
<input type="hidden" name="parent_id" value="{$id}"/>
</xsl:if>
<input id="comment-reply" type="submit" name="add_comment" value="Отправить" />
</form>