Textarea Post通过了,但是表单内没有数据
Textarea Post Passed, but not data within form
我有一个表单,我试图通过更新一个页面。我的名字和头衔通过;但是,我的textarea没有。我用来传递数据的代码
<script>
$(function () {
$('#updater').on('click', function (e) {
e.preventDefault();
$.ajax({
type: 'post',
url: 'calls.php',
data: $('#updatepage').serialize(),
success: function (data) {
alert(data);
location.reload();
}
});
});
});
</script>
实际的形式是
<form id="updatepage">
<input id="process" name="process" value="updatepage" type="hidden">
<input id="id" name="id" value="<?php echo $_GET['id']; ?>" type="hidden">
<table><tr><td>Name</td><td>Title</td></tr>
<tr><td><input type='text' name='name' id='name' value='<?php echo $admin->PageName(); ?>'></td>
<td><input type="text" name="title" id="title" value = "<?php echo $admin->PageTitle(); ?>"></td>
</tr>
</table>
<!-- tools box -->
<div class="pull-right box-tools">
<button class="btn btn-info btn-sm" data-widget='collapse' data-toggle="tooltip" title="Collapse"><i class="fa fa-minus"></i></button>
<button class="btn btn-info btn-sm" data-widget='remove' data-toggle="tooltip" title="Remove"><i class="fa fa-times"></i></button>
</div><!-- /. tools -->
</div><!-- /.box-header -->
<div class='box-body pad'>
<textarea id="editor1" name="editor1" rows="10" cols="80"><?php $admin->PageContent(); ?></textarea>
<a class="btn btn-app" id="updater">
<i class="fa fa-save"></i> Save
</a>
</form>
当我通过输入id传递数据时,但不管我做什么,似乎我的文本区总是认为它是空的。提交时调用的函数:
public function UpdatePage() {
global $db;
$query = <<<SQL
UPDATE pages
SET name=:name,title=:title,content=:content
WHERE id = :id
SQL;
$resource = $db->sitedb->prepare( $query );
$resource->execute( array(
':name' => $_POST['name'],
':title'=> $_POST['title'],
':content' => $_POST['editor1'],
':id' =>$_POST['id'],
));
}
问题出在CK编辑器。由于某种原因,附加CK编辑器使其无法通过。现在我只需要找出原因。经过修改以与CKeditor一起工作的AJAX$(function () {
$('#updater').on('click', function (e) {
for ( instance in CKEDITOR.instances )
CKEDITOR.instances[instance].updateElement();
e.preventDefault();
$.ajax({
type: 'post',
url: 'calls.php',
data: $('#updatepage').serialize(),
success: function (data) {
alert(data);
location.reload();
}
});
});
});
</script>
您的jQuery应该可以很好地传递数据。它包含在序列化。
我使用这段代码来提醒它正在发送的内容,并且文本区域包含在序列化数据中:
$('#updater').on('click', function (e) {
alert($('#updatepage').serialize());
e.preventDefault();
});
JS Fiddle: http://jsfiddle.net/zmgLba1h/
既然你提到使用CKEditor,我发现这个SO线程设置通过ajax提交之前的值:https://stackoverflow.com/a/3256553/722617
相关文章:
- 如何从pdftron webviewer获取表单数据
- JS验证ajax返回的html中的表单数据
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 将单击事件添加到数据表
- 预览数据表单
- Ajax数据表单序列化防止双重提交
- 如何在 Spring Framework 中处理表数据表单提交
- 发布大型数据表单 Angular JS
- 覆盖Magento中的默认数据表单提交JS活动
- 保存不带按钮的数据表单
- 更新Highchart数据表单导出按钮
- 将数据表单转换为PDF
- 我的Angular视图没有用数据表单服务器更新
- 如何在不重新加载页面的情况下获取数据表单数据库
- JavaScript SDK返回数据表单嵌套函数
- 使用php AJAX发送数据表单请求失败
- 数据表单$scope在Angular的view (page)中不显示
- 实时交换 HTML 数据表单
- 搜索parse.com数据表单html输入
- 如何在MVC中返回JSON数据表单控制器到jsp