Подключил для textarea формы визуальный редактор
ckeditor, и отправляю данные с помощью
jQuery Form Plugin. Почему то при первой отправке текстареа всегда пустые (хотя контент в эдитор добавлен), но при второй отправке уже нормально отправляет.
http://ckeditor.com/
https://github.com/malsup/form
Вот сам код...
<form id="addTest1" enctype="multipart/form-data" action="/admin/quest-create.html?isNaked=1&test=<?=$get_id?>" class="TTWForm spoilerBlock" method="post">
<div id="field1-container" class="field f_100">
<label for="field1">
Текст вопроса
</label>
<textarea rows="5" cols="20" name="questText" id="field1" required="required"></textarea>
</div>
<div id="field3-container" class="field f_100">
<label for="field3">
Минимум ответов (если 0 то неограничено)
</label>
<input name="minReply" value="1" id="field3" required="required" type="text">
</div>
<div id="field4-container" class="field f_100">
<label for="field4">
Максимум ответов (если 0 то неограничено)
</label>
<input name="maxReply" value="1" id="field4" required="required" type="text">
</div>
<input name="Test_id" value="<?=$get_id?>" id="field5" type="hidden">
<div id="form-submit" class="field f_100 clearfix submit">
<input value="Добавить" type="submit">
</div>
<div id="addTestReply" class="field f_100 infoError">
</div>
</form>
(function() {
var status = $('#addTestReply');
$('#addTest1').ajaxForm({
beforeSend: function() {
status.empty();
console.log('step1');
},
uploadProgress: function(event, position, total, percentComplete) {
console.log('step2');
},
success: function() {
console.log('step3');
},
complete: function(xhr) {
data = jQuery.parseJSON(xhr.responseText);
status.html(data.ReplyText);
if(data.status=='ok'){
ContentReload();
}
console.log('step4');
}
});
})();
var field1 = CKEDITOR.replace( 'field1' );
AjexFileManager.init({
returnTo: 'ckeditor',
editor: field1
});
if(isSet($_POST['questText']) or isSet($_POST['minReply']) or isSet($_POST['maxReply'])){
$err_count=0;
$this_date = date("Y-m-d H:i:s");
$f_questText = mysql_escape_string($_POST['questText']);
$f_Test_id = preg_replace('~\D~','',$_POST['Test_id']);
$f_minReply = preg_replace('~\D~','',$_POST['minReply']);
$f_maxReply = preg_replace('~\D~','',$_POST['maxReply']);
if (empty($f_questText)) {
$err_count++;
$arr_req['ReplyText']='Текст вопроса не может быть пустым!';
$arr_req['ErrorElemName']='questText';
}
if (empty($f_minReply)) {
$err_count++;
$arr_req['ReplyText']='Поле "Минимум ответов" не может быть пустым';
$arr_req['ErrorElemName']='minReply';
}
if (empty($f_maxReply)) {
$err_count++;
$arr_req['ReplyText']='Поле "Максимум ответов" не может быть пустым';
$arr_req['ErrorElemName']='maxReply';
}
if ($f_maxReply<$f_minReply) {
$err_count++;
$arr_req['ReplyText']='Минимальное число ответов не может быть больше максимального!';
$arr_req['ErrorElemName']='minReply';
}
if (empty($f_Test_id)) {
$err_count++;
$arr_req['ReplyText']='Заполните имя!';
$arr_req['ErrorElemName']='';
}
if ($get_test!=$f_Test_id){
$err_count++;
$arr_req['ReplyText']='Ошибка! Перезагрузите страницу!';
$arr_req['ErrorElemName']='';
}
if($err_count==0){
$sql_string = "SELECT `Priority` FROM `{$DB_FX}Quest` WHERE `Test_id`='{$f_Test_id}' ORDER BY `Priority` DESC LIMIT 1;";
$sql_query = mysql_query($sql_string);
$arr_row = mysql_fetch_row($sql_query);
$Priority = $arr_row[0];
if($Priority=='' or $Priority=='0' or $Priority<=0){
$Priority=1;
}else{
$Priority++;
}
$sql_string="INSERT INTO `{$DB_FX}Quest` SET `Quest_text`='{$f_questText}', `Checked`='0', `Priority`='{$Priority}', `Test_id`='{$f_Test_id}', `Reply_min`='{$f_minReply}', `Reply_max`='{$f_maxReply}', `Reply_count`='0';";
if(mysql_query($sql_string)){
$arr_req['status']='ok';
$arr_req['ReplyText']='Вопрос успешно добавлен!';
$sql_string = "SELECT COUNT(*) FROM `{$DB_FX}Quest` WHERE `Test_id`='{$f_Test_id}';";
$sql_query = mysql_query($sql_string);
$arr_row = mysql_fetch_row($sql_query);
$count_quest = $arr_row[0];
$sql_string="UPDATE `{$DB_FX}Test` SET `Quert_count`='{$count_quest}' WHERE `Test_id`='{$f_Test_id}';";
mysql_query($sql_string);
}else{
$arr_req['status']='fail';
$arr_req['ReplyText']='Ошибка записи данных!';
}
}else{
$arr_req['status']='fail';
$arr_req['get_test']=$get_test;
}
}
echo json_encode($arr_req);