я пытаюсь использовать tinymce для моей формы с кодом, подобным этому
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test</title>
<link href="admin.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="jquery/jquery-1.11.3.js"></script>
<script type="text/javascript" src="tinymce/tinymce.min.js"></script>
<script type="text/javascript">
tinymce.init({
selector: "#isi",
plugins: [
"advlist autolink lists link image charmap print preview anchor",
"searchreplace visualblocks code fullscreen",
"insertdatetime media table contextmenu paste"],
toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image"});
</script>
</head>
и мой код формы, как это
<form action="<?php echo $editFormAction; ?>" id="form1" name="form1" method="POST">
<p>
<label for="judul"></label>
<label for="idkategory"></label >
<select name="idkategory" class="login" id="idkategory" title="<?php echo $_SESSION['MM_UserName']; ?>" required="required" >
<option value="">Pilih Jenis Informasi</option>
<?php
do {
?>
<option value="<?php echo $row_kategori['idkategory']?>"><?php echo $row_kategori['nama']?></option>
<?php
} while ($row_kategori = mysql_fetch_assoc($kategori));
$rows = mysql_num_rows($kategori);
if($rows > 0) {
mysql_data_seek($kategori, 0);
$row_kategori = mysql_fetch_assoc($kategori);
}
?>
</select>
<input name="username" type="hidden" id="username" value="<?php echo $_SESSION['MM_Username']; ?>" />
</p>
<p>
Judul <br /><textarea name="judul" id="judul" cols="55" rows="2" required="required"></textarea>
</p>
<p>
Pengantar <br />
<textarea name="pengantar" id="pengantar" cols="55" rows="3" required="required"></textarea>
</p>
<p>
Isi <br />
<textarea name="isi" id="isi" cols="55" rows="9" required="required"></textarea>
<input name="foto" type="hidden" id="foto" value="no-image.png" />
</p>
<p>
Tanggal <br />
<?php
$today = date("Y-m-d H:i:s"); // 20010310
?>
<input name="tgl" type="text" required="required" id="tgl" value="<?php echo $today; ?>" size="30" />
</p>
<p>
<input name="button2" type="reset" class="login" id="button2" value="Batal" />
<input name="button" type="submit" class="login" id="button" value="Tambah Informasi" />
</p>
<input type="hidden" name="MM_insert" value="form1" />
</form>
мой sql запрос такой
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
$insertSQL = sprintf("INSERT INTO content (username, idkategory, judul, pengantar, isi, foto, tgl) VALUES (%s, %s, %s, %s, %s, %s, %s)",
GetSQLValueString($_POST['username'], "text"),
GetSQLValueString($_POST['idkategory'], "int"),
GetSQLValueString($_POST['judul'], "text"),
GetSQLValueString($_POST['pengantar'], "text"),
GetSQLValueString($_POST['isi'], "text"),
GetSQLValueString($_POST['foto'], "text"),
GetSQLValueString($_POST['tgl'], "date"));
mysql_select_db($database_konek, $konek);
$Result1 = mysql_query($insertSQL, $konek) or die(mysql_error());
$insertGoTo = "informasi.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
Когда я нажимаю кнопку отправки «Tambah Informasi», я не могу сохранить содержимое в базе данных mysql, страница даже не мигает. Когда я пытаюсь удалить свой скрипт tinymce со страницы, все работает хорошо. Что-то не так с моим кодом? любая помощь?
Это может быть потому, что tinymce скрывает текстовую область, потому что обычно вы получите сообщение, если требуемый элемент управления формы не заполнен. Попробуйте удалить требуемое из текстовой области isi и посмотрите, что произойдет?
Если вам все еще нужно убедиться, что текстовое поле заполнено, вы можете использовать JavaScript, чтобы проверить, присутствует ли значение перед отправкой формы. Похоже, что вы загрузили Jquery, поэтому я буду использовать это для моего примера.
JQuery:
//on submit function for form1
$("#form1".on("sumbit",function(event){//begin event
//if the length of the isi textarea value is equal to 0
if($("#isi")val().length === 0){//begin if then
//stop the form from submitting
event.preventDefault();
//Do something else here like alert an error or make the text area a
//different color
}//end if then
});//end event
Обрежьте значение перед вставкой. По умолчанию tinymce принимает новую строку.
Используйте отделку:
trim($_POST['isi']);
или изменить в плагинах
force_br_newlines : true,
force_p_newlines : false,
gecko_spellcheck : true,
remove_linebreaks : false,