Я использую Tinymce для текстового редактора, чтобы редактировать текст перед отправкой формы. Затем я использую jQuery для отправки формы без загрузки страницы, но когда я отправляю форму, требуется два щелчка, чтобы передать значение текстовой области.
Вот мой код для моей формы:
<div class="row">
<div class="col-lg-12">
<h1 class="page-header">Write News Release</h1>
</div>
</div>
<div class="row">
<div class="col-lg-12">
<span id="result"></span>
<div class="panel panel-default">
<div class="panel-heading">News release form</div>
<div class="panel-body">
<form id="myForm" action="dataentry/save_data.php" method="post">
<div class="col-lg-6">
<div class="form-group">
<label>Story date</label>
<div class="controls">
<div class="input-group">
<input type="text" name="date_story" id="date_story" class="datepicker form-control" placeholder="choose date">
<label for="date-picker-2" class="input-group-addon btn"><span class="glyphicon glyphicon-calendar"></span></label>
</div>
</div>
</div>
<div class="form-group">
<label>Writer/Author</label>
<input type="text" name="writer" id="writer" class="form-control" placeholder="Enter Name">
</div>
<div class="form-group">
<label>Headline</label>
<input type="text" name="headline" id="headline" class="form-control" placeholder="Enter headline">
</div>
<div class="form-group">
<label>Source</label>
<input type="text" name="source" id="source" class="form-control" placeholder="Enter source">
</div>
</div>
<div class="col-lg-10">
<div class="form-group">
<label>Story</label>
<textarea name="story" id="story" class="form-control" rows="10"></textarea>
</div>
<div class="form-group">
<label>Keywords</label>
<input type="text" name="keywords" id="keywords" class="form-control" placeholder="Enter keywords separated by comma(,)">
</div>
<input type="hidden" name="save" value="nr">
<button id="submit" name="submit" class="btn btn-primary">Submit</button>
</div>
</form>
</div>
</div>
</div>
</div>
<script src="../js/save_data_admin.js"></script>
<script src="../js/jquery-1.11.2.js"></script>
<script src="//tinymce.cachefly.net/4.1/tinymce.min.js"></script>
<script>tinymce.init({selector:'textarea'});</script>
и это внутри save_data_admin.js:
Я уже использую tinyMCE.triggerSave () и другие getContent, но когда я пытаюсь нажать кнопку, форма не отправляется.
$("#submit").click(function() {
//tinyMCE.triggerSave();
$.post( $("#myForm").attr("action"), $("#myForm :input").serializeArray(), function(save){ $("#result").html(save); } );
clearInput();
});
$("#myForm").submit(function(){
return false;
});
function clearInput(){
$('input[type="text"], input[type="date"], textarea').val('');
}
и save_data.php:
<?php
session_start();
include_once '../../include/CsppoAdmin.php';
$csppoAdmin = new CsppoAdmin();
//echo $_POST['date_story']." ".$_POST['writer']." ".$_POST['headline']." ".$_POST['source']." ".$_POST['story']." ".$_POST['keywords'];
if ($_REQUEST['save']=='nr')
{
if (!empty($_REQUEST['date_story']) && !empty($_REQUEST['writer']) && !empty($_REQUEST['headline']) && !empty($_REQUEST['source']) &&!empty($_REQUEST['story']) && !empty($_REQUEST['keywords'])) {
extract($_REQUEST);
$register = $csppoAdmin->add_news_release($date_story,$writer,$headline,$source,$story,$keywords);
if ($register)
echo '<p style="color:green">News release was successful saved!</p>';
else
echo '<p style="color:red">Failed. Inputted already exits please try again.</p>';
}else
echo '<p style="color:red">Fill up all fields</p>';
}
?>
Маби примерно так:
$("#myForm").submit(function(){
tinyMCE.triggerSave(); //must called. fills the hidden textarea
//format some data maby?
//post the data
$.post( $("#myForm").attr("action"), $("#myForm :input").serializeArray(), function(save){ $("#result").html(save); } );
return false;
});
Других решений пока нет …